ctrl+alt+M
: code is running 이라고 뜰 때
회문 문자열이란? 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 한다.
- 대소문자는 가리지 않는다.
function solution(s){
let answer="YES";
s=s.toUpperCase();
for(let i=0;i<(s.length)/2;i++){
if(s[i]==s[(s.length-1)-i]){
continue;
}
else{
answer="NO"
break;
}
}
return answer;
}
let str="Goog";
console.log(solution(str));
알아야 할 함수:
toUpperCase() : 모든 문자열을 대문자로 변경한다.
toLowerCase() : 모든 문자열을 소문자로 변경한다.
function solution(s){
let answer="";
let lt=0,rt=s.length-1;
const isAlpha=/[a-zA-Z]/;
s=s.split('');
// string type은 교환 안된다. => 배열 형태로 바꾼다.
while(lt<rt){
if(!isAlpha.test(s[lt]))
lt++;
else if(!isAlpha.test(s[rt]))
rt--;
else{
let tmp=s[rt];
s[rt]=s[lt];
s[lt]=tmp;
lt++;
rt--;
}
}
return s.join('');
// 배열의 원소를 연결하여 하나의 값으로 만드는 것
// return s.split("").reverse().join("");
// -> 문제점 : 특수문자는 그대로 사용한다 !
}
let str="a#b!GE*t@S";
console.log(solution(str));
알아야 할 포인트 : 정규식
lt++
을 통해 옮겨준다.rt++
을 통해 옮겨준다.swap
해준다. 주의할 점 :
let tmp=s[rt]; s[rt]=s[lt]; s[lt]=tmp;
로 바로 swap 불가능하다.
s=s.split('');
으로 배열화하고,s.join('');
배열화를 다시 String으로 묶어줘야한다.
투표한 후보의 기호(알파벳)이 쓰여져 있어서 한 명의 학급 회장이 선출될 수 있도록한다.
function solution(s){
let answer;
let sh=new Map();
for(let x of s){
sh.set(x, (sh.get(x)||0)+1);
}
let max=Number.MIN_SAFE_INTEGER;
for(let[key,val] of sh){
if(val>max){
max=val;
answer=key;
}
}
return answer;
}
console.log(solution("BACBACCACCBDEDE"));
isNaN();
: isN(ot)aN(umber) 숫자가 아닌 것을 return한다. true가 나온다면 이것은 문자열이라는 것이다. ex) isNaN("Hello3")
.split(자르는 기준이 되는 문자열)
:str.split(" ") 고, str="hello world" 라면, str을 출력하게 될 때 str=['hello','world'] 로 출력이 된다. 다시 문자열로 합치려면 str.join(" ");
.substring(시작index, 끝나는index+1)
var anyString = 'Mozilla'; // Displays 'Mozill' console.log(anyString.substring(0, 6));