字串 驗證回文串

2021-10-03 08:54:37 字數 1188 閱讀 1665

問題**:力扣演算法面試彙總

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

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

例子

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

輸出: true

# 輸入

s ="a man, a plan, a canal: panama"

思路:很簡單,給兩個指標,乙個從字串開端開始往後遍歷,乙個從字串末尾開始往前遍歷,當兩個指標相遇,則終止

# 功能:判斷字串是否為回文

# 輸入:字串

# 輸出:布林值

defispalindrome

(s):

# 空字串

iflen

(s)==0:

return

true

# 非空字串

new_s =

# 第一遍遍歷:提取字母或者數字,字母小寫

for letter in s.lower():

if letter.isalpha(

)or letter.isdigit():

#print(new_s)

# 第二遍遍歷:雙頭往中間遍歷,並比較是否相同

i, j =0,

len(new_s)-1

while i < j:

#print('i, j=', i, j)

if new_s[i]

== new_s[j]

: i +=

1 j -=

1else

:return

false

return

true

這裡需要兩個小工具:

def

ispalindrome

(s):

s1 =[*

filter

(str

.isalnum, s.lower())

]return s1 == s1[::

-1]

LeetCode 字串 驗證回文字串

給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 輸入 aba 輸出 true 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 首先判斷原字串是否是回文串,如果不是的話,每次刪除乙個字元後判斷字串是否是回文串。判斷乙個字串是否是回文串的方法是 return true...

字串?(回文)

g 字串?description 回文串是指ababa,abba,cccc這樣左右對稱的字串。每個字串我們都可以新增若干個字元使它變成乙個回文串。每次新增乙個字元都會耗費一定的時間,我們規定第一次新增耗費1s,第二次2s,第三次3s,第n次n秒。請問最少需要多長時間可以使現有的字串變成回文字串?in...

驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false個人ac答案 我發現我現在越來越謹慎...