Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 문자열을 회문으로 만들 수 있는지 확인

<시간/>

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