跳到主要内容

编写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字符),你可能需要调整程序以适应这些字符。