检查字符串是否可以在 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