給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的回文串。
示例 1:
輸入: 「a man, a plan, a canal: panama」
輸出: true
示例 2:
輸入: 「race a car」
輸出: false
設定兩個指標i和j,i從頭遍歷到尾,j從尾遍歷至頭。若兩者同為字母或數字,則進行比較是否相同,若不是則返回false,若是則繼續遍歷。若i或j所對應的字元不是字母或數字,則繼續遍歷。
執行用時: 84 ms, 在valid palindrome的python3提交中擊敗了60.07% 的使用者
記憶體消耗: 6.7 mb, 在valid palindrome的python3提交中擊敗了98.40% 的使用者
class
solution
:def
ispalindrome
(self, s)
:"""
:type s: str
:rtype: bool
"""i =
0 j =
len(s)-1
while i < j:
if s[i]
.isalnum(
)and s[j]
.isalnum():
if s[i]
.lower(
)!= s[j]
.lower():
return
false
i +=
1 j -=
1elif
not s[i]
.isalnum():
i +=
1elif
not s[j]
.isalnum():
j -=
1return
true
n = len(s)
時間複雜度o(n
)o(n)
o(n)
,空間複雜度o(1
)o(1)
o(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 最直觀的思路 定義兩個指標分別從...
Leetcode刷題筆記
1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...