Python练习——— 回文字符串的判断

刚开始学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)

另外看到一个博主的方法觉得挺简洁的:

(源地址: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])

你可能感兴趣的:(Python练习——— 回文字符串的判断)