剛開始學python,很多基本方法還不太會用,借用mooc課的練習題目記錄學習。
題目內容:
給定乙個字串,判斷它是否是回文字串(即類似於peep, 12321這樣的對稱字串),如果是輸出true,不是則輸出false。
判斷過程中假定只考慮字母和數字字元,而且忽略字母的大小寫和其它符號(如空格、標點符號等)。
輸入格式:
共一行,為乙個字串。
輸出格式:
共一行,為true或false。
輸入樣例:
love e vol;
輸出樣例:
true
時間限制:500ms 記憶體限制:32000kb
思路:
1.清洗輸入文字的格式,去掉空格和標點符號
去掉空格的兩種方法:
# 使用replace函式
text = text.replace(' ', '')
# 使用join函式
text = ''.join(text.split(' '))
去掉標點符號的兩種方法:
import string
for p in string.punctuation:
text = text.replace(p, '')
import string
text = ''.join(c for c in text if c not in string.punctuation)
另外看到乙個博主的方法:
2.進行回文判斷
進行判斷的兩種方法:
for i in range(len(s)):
if s[i] != s[len(s)-1-i]:
print(false)
break
else:
print(true)
def judgement(text):
if text == text[::-1]:
return true
else:
return false
最終**:
import string
text = input().lower()
text = text.replace(' ','')
for i in string.punctuation:
text = text .replace(i, '')
if text == text[::-1]:
print(true)
else:
print(false)
另外看到乙個博主的方法覺得挺簡潔的:
a=input()
#只留下數字和字母,統一變為小寫
b=''.join(map(lambda x:x.lower() if x.isdigit() or x.isalpha() else '',a))
#與倒轉對比是否相等
print(b==b[::-1])
判斷回文字串
遞迴入門 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如 level aaabbaaa 題目 判斷乙個字串是否為回文 解法 遞迴 遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決 問 如何縮少問題規模?答 通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們...
判斷回文字串
本題要求編寫函式,判斷給定的一串字元是否為 回文 所謂 回文 是指順讀和倒讀都一樣的字串。如 xyzyx 和 xyzzyx 都是回文。bool palindrome char s 函式palindrome判斷輸入字串char s是否為回文。若是則返回true,否則返回false。include in...
回文字串判斷
問題描述 回文字串指的是乙個順著讀和反過來讀都一樣的字串,比如 abcba poop 等,判斷乙個字串是否是回文字串。這裡提供兩種解法 解法一 同時從字串頭尾開始向中間掃瞄字串,如果所有頭尾字元都一樣,那麼這個字串就是乙個回文字串。採用這種方法,只需要維護頭部和尾部兩個掃瞄指標即可,終止條件是尾指標...