欢迎访问宙启技术站
智能推送

Python函数如何检查给定字符串是否是回文?

发布时间:2023-08-05 20:30:29

Python函数可以通过以下几种方法检查给定字符串是否是回文:

方法一:使用切片

def is_palindrome(s):
    # 将字符串转换为小写并去除空格和标点符号
    s = s.lower().replace(" ", "").strip(",.!?")

    # 比较翻转后的字符串和原字符串是否相等
    return s == s[::-1]

方法二:使用循环

def is_palindrome(s):
    # 将字符串转换为小写并去除空格和标点符号
    s = s.lower().replace(" ", "").strip(",.!?")

    # 使用循环逐个比较对应位置的字符
    for i in range(len(s)//2):
        if s[i] != s[-(i+1)]:
            return False
    return True

方法三:使用递归

def is_palindrome(s):
    # 将字符串转换为小写并去除空格和标点符号
    s = s.lower().replace(" ", "").strip(",.!?")

    # 递归终止条件
    if len(s) <= 1:
        return True

    # 检查首尾字符是否相等,并递归检查中间部分
    return s[0] == s[-1] and is_palindrome(s[1:-1])

这些方法都将字符串转换为小写,并移除空格和标点符号。然后,方法一使用切片操作将字符串翻转并与原字符串进行比较,方法二使用循环分别比较对应位置的字符,方法三使用递归不断检查首尾字符是否相等并递归检查中间部分。如果字符串是回文,则返回True,否则返回False。

示例运行结果:

print(is_palindrome("A man, a plan, a canal, Panama!"))  # True
print(is_palindrome("Racecar"))  # True
print(is_palindrome("Python"))  # False