문자열을 첫 번째이자 유일한 인수로 사용하는 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