/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
const regex = /[^a-zA-Z0-9]/g;
const reverseStr = s.replace(regex,'').toLowerCase().split('').reverse().join('');
if(s.replace(regex,'').toLowerCase() === reverseStr) return true;
return false;
};
정규식을 활용해 알파벳과 숫자만 남기고 toLowerCase()
로 소문자로 만들어줬다. 그리고 split('')
를 사용해 배열로 만든 뒤 reserve()
를 사용해 뒤집고 join('')
으로 다시 합쳐줬다. 처음에 알파벳만 남겨야하는 주 알았다가... alphanumeric인걸 틀린 뒤에 알았다...ㅠㅠ 다른 사람들 풀이를 보니 two pointer
로 풀거나 match
를 사용해 split('')
과정을 안 거친 거 같다. leetcode
는 discuss
기능과 틀린 테스트케이스를 보여줘서 편한 거 같다. 근데 가끔 스스로 테스트케이스 생각하는 능력은 부족해지는 거 같기도하다🤔