LeetCode刷題之路 125 驗證回文串

2021-10-20 19:10:11 字數 1044 閱讀 4643

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。

說明:本題中,我們將空字串定義為有效的回文串。

示例 1:

輸入: 「a man, a plan, a canal: panama」

輸出: true

示例 2:

輸入: 「race a car」

輸出: false

#最直觀的思路

定義兩個指標分別從字串的首端和末端開始向中間移動,

並對比首末的字元是否一樣,

若發現不一樣則肯定不為回文串,直接返回false

需要注意的是:利用python中的isalnum函式來判斷字元是否為數字或字母,

如果不是,則需要改變位置進行重新判斷

其次,再判斷是否為數字或字母時需要加上 left(self, s: str) -> bool:

left, right = 0, len(s) - 1

while left < right:

while left < right and not s[left].isalnum(

): left += 1

while left < right and not s[right].isalnum(

): right -= 1

if s[left].lower(

)!= s[right].lower(

): return false

left += 1

right -= 1

return true#簡潔的寫法

class solution:

def ispalindrome(self, s: str) -> bool:

str1 =

"".join(i.lower(

)for i in s if i.isalnum(

))# print(str1)

return str1 == str1[::-1]

leetcode刷題 125 驗證回文串

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

LeetCode刷題筆記 125 驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 設定兩個指標i和j,i從頭遍歷到...

Evan的LeetCode刷題之路

二 資料庫 以此記錄本人的leetcode刷題之路。題目內容均 於leetcode 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2...