자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 한다.
문자열이 입력될 때, 해당 문자열이 팰린드롬이면 "YES"를, 아니면 "NO"를 출력한다.
단, 팰린드롬 검사시 알파벳만 가지고 회문을 검사하며 대소문자를 구분하지 않는다.
(알파벳 이외의 문자들은 무시한다.)
👉 입력
길이 100을 넘지 않는 문자열이 주어진다.
👈 출력
검사 결과를 "YES" 혹은 "NO"로 출력한다.
📝 풀이
function solution(s) {
let answer = "YES";
s = s.toLowerCase().replace(/[^a-z]/ig, '');
if (s.split('').reverse().join('') !== s) answer = "NO";
return answer;
}
let str = "found7, time: study; Yduts; emit, 7Dnuof";
console.log(solution(str));
먼저 검사하기 전 문자열을 조정한다.
대소문자를 구분하지 않고 알파벳만을 가지고 검사하기 때문에 주어진 문자열 s의 모든 문자를 소문자로 바꾼 후 정규식을 이용해 알파벳 문자가 아닌 것들을 빈 문자열로 치환해 주었다.
그리고 이것을 반전시킨 문자열과 주어진 문자열이 동일하지 않으면 s는 회문이 아니므로 answer에 "NO"를 주었다.
'Algorithm > JavaScript' 카테고리의 다른 글
[문자열탐색] 가장 짧은 문자거리 (0) | 2021.12.10 |
---|---|
[문자열탐색] 숫자만 추출 (0) | 2021.12.10 |
[문자열탐색] 회문 문자열 (0) | 2021.12.09 |
[배열탐색] 봉우리 (0) | 2021.12.09 |
[배열탐색] 격자판 최대합 (0) | 2021.12.09 |
댓글