假设正读和反读都相同的字符序列为 "回文" 试写一个算法判别读入的一个以 '@'为结束符 的字符序列是否是 "回文" 。不用栈和队列完 成该算法。
时间: 2024-09-19 13:08:55 浏览: 36
aba.rar_ABA_判断以@为结束符的字符串是否_回文序列
为了判断输入的字符序列是否是回文,我们可以采用双指针法,即从序列的两端开始同时向中间移动,比较对应的字符是否相等。如果在整个过程中所有对应字符都相等,则该序列是回文。以下是使用Python编写的一个简单算法:
```python
def is_palindrome(input_str):
# 定义两个指针,一个指向字符串的起始位置 (i)
left = 0
# 另一个指向字符串的结束位置 (j)
right = len(input_str) - 1
while input_str[left] != '@' and left < right: # 当左指针未达到 '@' 或者 左右指针未相遇
if input_str[left] != input_str[right]: # 如果当前的左右字符不相等
return False # 判定不是回文,直接返回False
left += 1 # 左指针向右移动
right -= 1 # 右指针向左移动
return True # 如果所有的字符都比较完毕且都相等,返回True表示是回文
# 测试例子
input_sequence = "madam@"
print(is_palindrome(input_sequence)) # 输出:True
# 测试非回文例子
input_sequence = "hello@"
print(is_palindrome(input_sequence)) # 输出:False
```
阅读全文