在 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.