📅  最后修改于: 2023-12-03 15:28:48.612000             🧑  作者: Mango
在这个问题中,我们需要编写一个函数来判断一个字符串是否为回文字符串。回文字符串是指正着读和倒着读都相同的字符串,比如 "level" 就是一个回文字符串。
一个字符串。
如果输入的字符串是回文字符串,返回 True,否则返回 False。
从前往后读和从后往前读都相同的字符串,可以考虑使用双指针来解决。定义两个指针,一个指向字符串的头部,一个指向字符串的尾部,每次判断它们所指向的字符是否相同。如果有不同的字符,说明这个字符串不是回文字符串,返回 False;如果两个指针相遇了,说明这个字符串是回文字符串,返回 True。
下面是一个 Python 实现:
def is_palindrome(s: str) -> bool:
# 定义双指针
left, right = 0, len(s) - 1
# 循环判断字符是否相同
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
下面是一些测试样例:
assert is_palindrome("level") == True
assert is_palindrome("hello") == False
assert is_palindrome("A man a plan a canal Panama") == True