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

如何使用Python函数来判断一个字符串是否是回文

发布时间:2023-12-03 13:38:26

Python函数可以通过多种方法来判断一个字符串是否是回文,下面将介绍几种常用的方法。

方法一:比较反转字符串

这是最简单直观的方法,通过将字符串反转,然后与原字符串进行比较,如果相等则说明是回文。

def is_palindrome(string):
    return string == string[::-1]

完整代码如下:

def is_palindrome(string):
    return string == string[::-1]

string = input("请输入一个字符串: ")
if is_palindrome(string):
    print("{} 是回文".format(string))
else:
    print("{} 不是回文".format(string))

方法二:逐个比较字符

这种方法通过在字符串的两端设立两个指针,逐个比较字符,如果对应位置的字符相等,则继续比较下一个字符,直到两个指针相遇或者不相等。

def is_palindrome(string):
    left, right = 0, len(string) - 1
    while left < right:
        if string[left] != string[right]:
            return False
        left += 1
        right -= 1
    return True

完整代码如下:

def is_palindrome(string):
    left, right = 0, len(string) - 1
    while left < right:
        if string[left] != string[right]:
            return False
        left += 1
        right -= 1
    return True

string = input("请输入一个字符串: ")
if is_palindrome(string):
    print("{} 是回文".format(string))
else:
    print("{} 不是回文".format(string))

方法三:使用栈或队列

这种方法通过使用栈或队列来将字符串的字符进行倒序排列,然后与原字符串比较,如果相等则说明是回文。

from collections import deque

def is_palindrome(string):
    stack = deque()
    queue = deque()
    for char in string:
        stack.append(char)
        queue.append(char)
    while stack and queue:
        if stack.pop() != queue.popleft():
            return False
    return True

完整代码如下:

from collections import deque

def is_palindrome(string):
    stack = deque()
    queue = deque()
    for char in string:
        stack.append(char)
        queue.append(char)
    while stack and queue:
        if stack.pop() != queue.popleft():
            return False
    return True

string = input("请输入一个字符串: ")
if is_palindrome(string):
    print("{} 是回文".format(string))
else:
    print("{} 不是回文".format(string))

这些都是常用的方法来判断字符串是否是回文,可以根据实际情况选择合适的方法来使用。