
😎풀이
isPalindrome
: 투 포인터를 설정하여 팰린드롬 여부 확인
validPalindrome
: 최대 한 개 까지의 단어를 제거하고 팰린드롬 여부 확인
2-1. 투 포인터로 순회하며 현재 비교 문자가 다르다면, 왼쪽 글자와 오른쪽 글자를 각각 제거하여 팰린드롬 여부 확인하고 해당 결과 반환
function validPalindrome(s: string): boolean {
let left = 0
let right = s.length - 1
while(left < right) {
if(s[left] !== s[right]) {
const skipLeftIsPalindrome = isPalindrome(s.slice(left + 1, right + 1))
const skipRightIsPalindrome = isPalindrome(s.slice(left, right))
return skipLeftIsPalindrome || skipRightIsPalindrome
}
left++
right--
}
return true
};
function isPalindrome(s: string) {
let left = 0
let right = s.length - 1
while(left < right) {
if(s[left] !== s[right]) return false
left++
right--
}
return true
}