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

使用Python编写的判断一个字符串是否为回文的函数

发布时间:2023-12-04 11:17:15

在Python中可以使用以下函数来判断一个字符串是否为回文:

def is_palindrome(string):
    # 将字符串转换为小写并去除空格和标点符号
    string = ''.join(e for e in string.lower() if e.isalnum())
    # 使用双指针进行比较
    left, right = 0, len(string) - 1
    while left < right:
        if string[left] != string[right]:
            return False
        left += 1
        right -= 1
    return True

这个函数的思路是先将字符串转换为小写并去除所有的空格和标点符号,然后使用双指针从字符串的两端开始比较字符是否相等。如果不相等,就返回 False,否则继续比较,直到左指针大于右指针,此时整个字符串都比较完毕,返回 True。

下面是一个使用例子:

string1 = "A man, a plan, a canal, Panama"  # 是回文
string2 = "race car"  # 是回文
string3 = "hello world"  # 不是回文

print(is_palindrome(string1))
print(is_palindrome(string2))
print(is_palindrome(string3))

输出结果为:

True
True
False

可以看到,函数成功地判断了字符串是否为回文。