LeetCode 125 驗證回文串

2021-10-17 19:18:04 字數 842 閱讀 5155

解題思路

使用雙指標,左指標向友移,右指標向左移,判斷移動到的字元是否是字母或數字,是就判斷是否相同,不是字母或數字則繼續移動;終止條件為兩指標相遇;

時間複雜度:o(|s|)o(∣s∣),其中 |s|∣s∣ 是字串 ss的長度。

空間複雜度:o(|s|)o(∣s∣)。由於我們需要將所有的字母和數字字元存放在另乙個字串中,在最壞情況下,新的字串與原字串完全相同,因此需要使用 o(|s|)o(∣s∣) 的空間。

**:

class

solution

(object):

defispalindrome

(self, s):if

len(s)

<2:

return

true

s=s.lower #全變小寫字母

left =

0 right =

len(s)-1

while right-left>0:

ifnot s[left]

.isalnum():

#判斷指標所指位置是否是字母或數字

left+=

1continue

ifnot s[right]

.isalnum():

right-=

1continue

if s[left]

==s[right]

: left+=

1 right-=

1else

:return

false

return

true

leetcode125 驗證回文串

一 問題描述 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 二 和思路 2.分...

LeetCode125驗證回文數

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 falseclass solution def...

leetcode 125 驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false注意讀題,題目中說了只考慮字母和數字...