문자열을 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.
우리 함수의 임무는 문자열에서 최대 한 문자를 삭제하여 해당 문자열을 회문 문자열로 만들 수 있는지 확인하는 것입니다. 그렇게 할 수 있다면 함수는 true를 반환해야 하고 그렇지 않으면 false를 반환해야 합니다.
예를 들어 -
입력 문자열이 -
인 경우const str = 'kjlk';
그러면 출력은 다음과 같아야 합니다. -
const output = true;
문자열에서 'l'을 삭제하면 회문 문자열인 'kjk'만 남게 되기 때문입니다.
예시
이에 대한 코드는 -
const str = 'kjlk';
const isPalindrome = (str = '', start, end) => {
while (start < end) {
if (str[start] != str[end]) {
return false;
};
start ++;
end --;
};
return true;
};
const canMakePalindrome = (str = '') => {
let left = 0, right = str.length - 1;
while (left < right - 1) {
if (str[left] !== str[right]) {
if (isPalindrome(str, left, right - 1)) {
return true;
};
if (isPalindrome(str, left + 1, right)) {
return true;
};
return false;
}else {
left ++;
right --;
};
};
return true;
}
console.log(canMakePalindrome(str)); 출력
콘솔의 출력은 -
true