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

JavaScript에서 최대 하나의 삭제를 사용하여 회문 형성

<시간/>

문제

문자열 str을 첫 번째이자 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다.

우리의 기능은 최대를 삭제할 수 있습니다. 문자열 str에서 한 문자를 가져와 회문으로 만들 수 있는지 확인해야 합니다.

예를 들어 함수에 대한 입력이

인 경우

입력

const str = 'dr.awkward';

출력

const output = true;

출력 설명

문자열에서 '.'를 삭제하면

다음은 코드입니다 -

const str = 'dr.awkward';
const validPalindrome = (str = '') => {
   const valid = (left, right) => {
         for (let i = left; i <= Math.floor((left + right) / 2); i++) {
         if (str[i] !== str[right - (i - left)]) {
            return false
         }
      }
      return true
   }
   for (let i = 0; i <= Math.floor(str.length / 2); i++) {
      const right = str.length - 1 - i
      if (str[i] !== str[right]) {
         return valid(i, right - 1) || valid(i + 1, right)
      }
   }
   return true
}
console.log(validPalindrome(str));

출력

true