输入一个字符串,判断是否为回文串。所谓回文串,是指一个字符串顺读和反读是一样的,如“523325”和“abcba”都是回文串。
时间: 2024-12-18 14:29:51 浏览: 21
判断一个字符串是否为回文串,通常需要比较其正向字符序列与反转后的字符序列是否相等。你可以通过两种主要的方式来实现这个功能:
1. **双指针法**:创建两个指针,一个从字符串的开始位置(0),另一个从结束位置(字符串长度减一)。逐次比较这两个指针对应的字符,如果相同则继续移动,如果不相同就返回false。当两个指针相遇或者交叉时,说明整个字符串是回文的。
```python
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left, right = left + 1, right - 1
return True
```
2. **递归法**:也可以通过递归的方式,每次比较首尾字符,然后递归地检查剩余部分是否也是回文。这种方法虽然简洁,但是效率较低,因为存在大量的重复计算。
```python
def is_palindrome_recursion(s, start=0, end=None):
if end is None:
end = len(s) - 1
if start >= end:
return True
else:
if s[start] != s[end]:
return False
return is_palindrome_recursion(s, start+1, end-1)
```
阅读全文