把判斷是回文的抽成方法f1,
如果是直接返回true,
如果不是找到兩個錯誤的索引,兩個索引分別移動乙個位置即可
var validpalindrome = function (str)
else
}return true;
} let start =
0, end = str.length -1;
let res =
f1(start, end, str);if
(res ==
= true)
return true;
let [s, e]
= res;
let r1 =
f1(s +
1, e, str)
let r2 =
f1(s, e-
1, str)
return r1 ==
= true || r2 ==
= true;
}
進一步整理如下
var validpalindrome =
function
(s, flag = true)
;
680 驗證回文字串2
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。思考 其實大的思路和驗證回文字串1相似,前後兩個指標,依次一一...
驗證回文字串
描述 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。解法 字串中可能含有其他的字元,我們從字串的兩頭開始索引,如果左邊的字元不是字母或者數字字元,那麼讓左邊先走一步,同理右邊的也一樣。如果兩邊字元相同,那麼左邊和右邊同時走...
驗證回文字串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false將大寫字母全部轉化成小寫字母,將空格...