在 JavaScript 中使用至多一次删除形成回文串


问题

我们需要编写一个 JavaScript 函数,其第一个也是唯一的参数是字符串 str。

我们的函数可以至多从字符串 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

更新于:24-Apr-2021

157 已查阅

开启您的职业生涯

完成课程获得证书

开始学习
广告
© . All rights reserved.