编写Python程序,检查序列是否为回文?
参考答案:
以下是一个Python程序,可以检查一个字符串是否是回文。回文是指一个字符串从前往后读和从后往前读都是一样的。
def is_palindrome(s):
# 转换为小写并移除空格和标点符号
s = ''.join(c for c in s if c.isalnum()).lower()
return s == s[::-1]
# 测试
print(is_palindrome("A man, a plan, a canal: Panama")) # 输出: True
print(is_palindrome("race a car")) # 输出: False
在这个程序中,is_palindrome
函数接收一个字符串s
作为输入。首先,我们使用列表推导式来移除字符串中的所有非字母和非数字字符,并将所有字符转换为小写。然后,我们检查处理后的字符串是否与其反向字符串相同。如果相同,那么原始字符串就是回文,函数返回True
;否则,返回False
。
注意,这个程序假设输入只包含ASCII字符。如果你的输入可能包含其他类型的字符(如Unicode字符),你可能需要调整程序以适应这些字符。