680 驗證回文字串 (Python)

2021-10-06 07:04:43 字數 691 閱讀 9735

給定乙個非空字串 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...