📅  最后修改于: 2023-12-03 15:26:19.454000             🧑  作者: Mango
回文字符串是在正序和倒序两种情况下都相同的一种字符串,例如 "racecar" 和 "level" 都是回文字符串。本文将介绍如何使用 Python 判断一个字符串是否为回文字符串。
第一种判断方法是通过将字符串反转后与原字符串比较是否相等。该方法可以通过 Python 内置函数 [::-1]
来实现。
def is_palindrome(s):
return s == s[::-1]
第二种判断方法是通过设定两个指针分别指向字符串的首尾元素,然后向中间移动并且比较这两个元素是否相等。判断过程中需要注意忽略非英文字母和数字的字符。具体实现如下:
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
while not s[left].isalnum() and left < right:
left += 1
while not s[right].isalnum() and left < right:
right -= 1
if s[left].lower() != s[right].lower():
return False
left += 1
right -= 1
return True
本文介绍了判断回文字符串的两种方法。第一种方法简单明了,但是需要额外的内存来存储反转后的字符串,空间复杂度为 $O(n)$。第二种方法省去了反转字符串的过程,但是需要考虑忽略非英文字母和数字的字符,时间复杂度为 $O(n)$。在应用场景中可根据需要灵活选择。