[문자열 탐색] 회문 문자열

jinny·2021년 9월 28일

Algorithm

목록 보기
23/34
post-thumbnail

앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열
회문 문자열이면 "YES", 아니면 "NO" (단, 대소문자는 구분하지 X)

1. for문

function solution(s) {
    let answer = 'YES';
    s = s.toLowerCase();
    let n = s.length;
    for(let i=0; i<n/2; i++) {
        if(s[i]!==s[n-i-1]) answer = 'NO';
    }

    return answer;
}
let str = 'gooG';  
console.log(solution(str));   // YES
  • 문자열 길이의 절반만큼 for문을 돌면서 끝자리와 비교

2. Array.reverse()

function solution(s) {
    let answer = 'YES';
    s = s.toLowerCase();
    if(s.split('').reverse().join('')!==s) answer = 'NO';

    return answer;
}
let str = 'gooG1';
console.log(solution(str));  // NO
  • split('')을 이용해 문자열을 하나씩 쪼개 배열형태로 반환

  • 반환된 배열을 reverse()를 이용해 배열의 순서를 반전

  • 반전된 배열의 모든 요소를 연결해 join()을 이용해 다시 문자열로 반환

  • 반전된 문자열과 원래 문자열을 비교

profile
주니어 개발자의 기록

0개의 댓글