检查给定的输入单词是否是回文

时间:2014-08-31 17:59:15

标签: python algorithm palindrome

a=raw_input("enter the word")
b=[str(letter) for letter in a]
c=b[::-1]
print c

if b==c:
    print ("it is a palindrome") 
else:
    print "it is not a palindrome"

这个程序工作正常。只有一个问题我如何修改它,以便打印护士作为回文运行。它目前正在将nursesrun打印为回文。请帮助和建议。 此代码适用于python 2.7,请仅对此代码进行即兴创作。感谢。

2 个答案:

答案 0 :(得分:2)

虽然有更好的方法可以做到这一点,但这个例子显示了代码的改进(特别是)。您可以查看letter.isalpha()

b = [str(letter) for letter in a if letter.isalpha()]

现在检查会有效。

演示:

>>> x = "nurses run"
>>> b=[str(letter) for letter in x if letter.isalpha()]
>>> 
>>> b
['n', 'u', 'r', 's', 'e', 's', 'r', 'u', 'n']
>>> c = b[::-1]
>>> b == c
True
>>> 

编辑:

使用replace的代码:

x = x.replace(" ", "")

>>> x = "nurses run"
>>> x = x.replace(" ", "")
>>> x
'nursesrun'

请注意,您必须以这种方式明确替换每一种类型。

答案 1 :(得分:1)

你可以试试这个:

def is_palindrome(word):
    return word == ''.join(reversed(word))

print is_palindrome('madam') #True