給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。
示例 1:
輸入: 「aba」
輸出: true
示例 2:
輸入: 「abca」
輸出: true
解釋: 你可以刪除c字元。
思路:首先兩個指標,l,r分別是從前開始和從後開始。
如果s[l] != s[r]的時候,我們需要刪除掉乙個字元,就有兩種情況。一種是刪除左邊的,一種是刪除右邊的。
class
solution
:def
validpalindrome
(self, s:
str)
->
bool
: l, r =0,
len(s)-1
while l < r:
if s[l]
!= s[r]
: case1, case2 = s[l:r]
, s[l+
1:r+1]
return case1 == case1[::
-1]or case2 == case2[::
-1] l, r = l+
1, r-
1return
true
680 驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。分析 使用雙指標,在第乙個不相等的位置略過左邊或右邊的乙個字元...
680 驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。class solution int i 0,j len 1 ...
680 驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。class solution object defvalidp...