Leetcode 125:驗證迴文串(最詳細解決方案!!!)
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的迴文串。
示例 1:
輸入: "A man, a plan, a canal: Panama"
輸出: true
示例 2:
輸入: "race a car"
輸出: false
解題思路
首先想到的一個解決辦法是,將字串中的字母按順序拿出來,並且將大寫的字母轉化為小寫字母新增到一個新的字串中,然後判斷迴文字元即可。
class Solution:
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
s_filter = ''.join(filter(str.isalnum, s)).lower()
return s_filter[::-1] == s_filter
上面這種寫法非常的pythonic
,讓人看著很舒服,很簡潔。
然後我們還可以想到的一種簡潔做法是通過對撞指標
。你可以閱讀這篇來了解對撞指標
的思想Leetcode 167:兩數之和 II - 輸入有序陣列
class Solution:
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
l = 0
r = len(s) - 1
while l < r:
if not s[l].isalnum():
l += 1
continue
if not s[r].isalnum():
r -= 1
continue
if s[l].lower() != s[r].lower():
return False
else:
l += 1
r -= 1
return True
但是這個解法在python看來很蠢( ̄▽ ̄)”~~
如有問題,希望大家指出!!!
相關推薦
Leetcode 125:驗證迴文串(最詳細解決方案!!!)
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2:
LeetCode 125. 驗證迴文串(C、C++、python)
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race
LeetCode-125.驗證迴文串(相關話題:字串)
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race a car" 輸
【LeetCode】125. 驗證迴文串(Valid Palindrome)
【 英文練習 | 中文練習 】 題目描述: 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,忽略字母的大小寫。 解題思路: 用雙指標的思想,從字串的頭部與尾部向中間移動比較。 public boolean isPalindrome(String s) { if
[Leetcode] 125. 驗證迴文串 java
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "rac
LeetCode-125. 驗證迴文串
題目 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 **說明:**本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入
leetcode 125:驗證迴文串
bool isPalindrome(std::string s){ std::vector<char> a; for(int i=0;i<s.size();i++){ if((s[i]>='a'&&s[i]<='z')
Leetcode:125.驗證迴文串
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race
Leetcode 125.驗證迴文串
驗證迴文串 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race a ca
Leetcode 125. 驗證迴文串(Python3)
125. 驗證迴文串 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入:
Leetcode 328:奇偶連結串列(最詳細解決方案!!!)
給定一個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。 請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 O(1),時間複雜度應為 O(nodes),nodes 為節點總數。
Leetcode 92:反轉連結串列 II(最詳細解決方案!!!)
反轉從位置 m 到 n 的連結串列。請使用一趟掃描完成反轉。 說明: 1 ≤ m ≤ n ≤ 連結串列長度。 示例: 輸入: 1->2->3->4->5->NU
【LeetCode】125. 驗證迴文串
題目連結:https://leetcode-cn.com/problems/valid-palindrome/description/ 題目描述 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。
【LeetCode】 125 驗證迴文串
解題思路: 1 哦 看吶,這是我們的老朋友雙指標,3Sum這道題也是用這個來做的。設定兩個指標從前後分別向中間遍歷,驗證遇到的對應位置的字元是不是相等。 2 需要注意:統一大小寫的時候別用Character的API toUpperCase,耗時較多,直接x-=32即可;同時注意不
【LeetCode】#125驗證迴文串(Valid Palindrome)
【LeetCode】#125驗證迴文串(Valid Palindrome) 題目描述 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 示例 1: 輸入: “A man, a plan,
Leetcode 125.驗證回文串 By Python
elf 字符串 有效 包括 就是 class asc 問題 提升 思路 顯然一個字符串不止包括字母和數字字符,所以我們可以先提取出來我們要進行比較的字符 還有一個問題是,字母是分大小寫的,我們要統一大寫或者統一小寫,就是規範化 代碼 class Solution(objec
LeetCode之驗證迴文串
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race a car"
LeetCode題目--驗證迴文字串(python實現)
題目 給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2:
125. 驗證迴文串(java)
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race a car"
125 驗證迴文串
給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: