#c 设计算法判定给定的字符序列是否为回文
时间: 2024-10-09 12:01:58 浏览: 44
JS使用栈判断给定字符串是否是回文算法示例
5星 · 资源好评率100%
判断一个字符序列是否为回文,通常是指从前往后读和从后往前读是一样的,例如 "level" 和 "madam" 就是回文串。这里可以提供一种简单的双指针算法思路:
1. 初始化两个指针,一个指向字符串的开始(`start`),另一个指向结束(`end`)。
2. 循环进行,直到 `start` 小于等于 `end`:
a. 检查当前位置的字符(`str[start]`)是否等于倒数第 `end` 位的字符(`str[end]`)。如果不是,说明不是回文,返回 `false`。
b. 如果相等,移动 `start` 向右一位,`end` 向左一位。
3. 当两个指针相遇或交叉时,由于已经检查过所有对称字符对,说明是回文,返回 `true`。
以下是 Python 中的一个示例实现:
```python
def is_palindrome(s):
start = 0
end = len(s) - 1
while start < end:
if s[start] != s[end]:
return False
start += 1
end -= 1
return True
# 示例:
print(is_palindrome("level")) # 输出: True
print(is_palindrome("madam")) # 输出: True
```
阅读全文