回文字符串(10分)

题目内容:

给定一个字符串,判断它是否是回文字符串(即类似于peep, 12321这样的对称字符串),如果是输出True,不是则输出False。

判断过程中假定考虑字母和数字字符,而且忽略字母的大小写和其它符号(如空格、标点符号等)。

 

输入格式:

共一行,为一个字符串。

 

输出格式:

共一行,为True或False。

 

输入样例:

 

  1. love e vol;

输出样例:

True

时间限制:500ms内存限制:32000kb

程序1:

import string
def huiwen(text):
    return text[::-1]
def isHuiWen(text):
    text = text.lower()
    text = text.replace(' ', '')
    for n in string.punctuation:
        text = text.replace(n, '')
    return text == huiwen(text)
def main():
    text = input("")
    if isHuiWen(text):
        print("True")
    else:
        print("False")
if __name__ == '__main__':
    main()

程序2:

a=input()
b=''
for c in a:
    if c.isalpha() or c.isdigit():
        b=b+c.lower()
for i in range(len(b)//2):
    if b[i]!=b[-1-i]:
        print(False)
else:
    print(True)

程序3:

a=input()
#只留下数字和字母,统一变为小写
b=''.join(map(lambda x:x.lower() if x.isdigit() or x.isalpha() else '',a))
#与倒转对比是否相等
print(b==b[::-1])