Python練習 回文字串的判斷

2021-09-23 14:13:17 字數 1700 閱讀 3490

剛開始學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 等,判斷乙個字串是否是回文字串。這裡提供兩種解法 解法一 同時從字串頭尾開始向中間掃瞄字串,如果所有頭尾字元都一樣,那麼這個字串就是乙個回文字串。採用這種方法,只需要維護頭部和尾部兩個掃瞄指標即可,終止條件是尾指標...