(알고리즘) 유효한 팰린드롬


앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 한다.

문자열이 입력되면 해당 문자열이 팰린드롬이라면 'YES', 'NO'를 출력하는 프로그램을 작성하세요.

단 회문을 검사할때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않는다.

알파벳 이외의 문자들을 무시한다.

입력설명

첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어진다.

출력설명

첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO를 출력한다.

입력예제

'found7, time: study; Yduts; emit, 7Dnuof'

출력예제 1

YES


문제 풀이

회문 문자열 문제 복습. 이 문제의 포인트는 오로지 알파벳을 가지고 판별한다는 것이다. 따라서,

  • 대소문자를 소문자로 통일한다.
  • 알파벳이 아닌 기타 문자열을 모두 공백으로 처리해서 정리해준다.

이를 위해서 메소드 toLowerCase()를 이용해서 소문자로 통일하고, 정규표현식과 replace 메소드로 알파벳이 아닌 문자열을 모두 정리해준다.
replace(/[^a-z]/g, '')

나머지는 이전 문제와 풀이가 동일하다.

function solution(s) {
  let answer;
  let s2 = s.toLowerCase().replace(/[^a-z]/g, ''); // 중요한 포인트
  s2.split('').reverse().join('') !== s2 ? answer = 'No' : answer = 'yes'
  return answer;
}

좋은 웹페이지 즐겨찾기