Python練習———回文文字列の判断

1721 ワード

pythonを習い始めたばかりで、多くの基本的な方法がまだあまりできていないので、moocの授業の練習問題を借りて勉強を記録します.
タイトル内容:
1つの文字列が与えられ、それがエコー文字列(すなわちpeep,12321のような対称文字列)であるか否かが判断され、出力Trueである場合、そうでない場合はFalseが出力される.
判断過程では、アルファベットと数字文字のみを考慮し、アルファベットの大文字と小文字、その他の記号(スペース、句読点など)を無視すると仮定します.
入力形式:
行は1文字列です.
出力フォーマット:
TrueまたはFalseの行です.
サンプルを入力:
love e vol;
出力サンプル:
True
時間制限:500 msメモリ制限:32000 kb
考え方:1.入力テキストのフォーマットを洗浄し、スペースと句読点を削除してスペースを削除する2つの方法:
#   replace  
    text = text.replace(' ', '')

#   join  
    text = ''.join(text.split(' '))

句読点を消すには、次の2つの方法があります.

    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)

もう1つのブロガーの方法を見ました.
2.回文判断を行う判断の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)

もう一人のブロガーを見る方法は簡潔だと思います.
(ソースアドレス:https://blog.csdn.net/suxiaorui/article/details/87174034)
a=input()
#        ,      
b=''.join(map(lambda x:x.lower() if x.isdigit() or x.isalpha() else '',a))
#         
print(b==b[::-1])