假设称正读和反读都相同的字符序列为“回文”,例如,‘abba‘ 和 ‘abcba‘是回文,‘abcde‘ 和 ‘ababab‘ 则不是回文。试写一个算法判别读入的一个以‘@‘为结束符的字符序列是否是“回文”。
时间: 2024-05-13 12:20:45 浏览: 123
判断字符序列是否是回文
5星 · 资源好评率100%
可以使用栈来解决这个问题。首先将字符序列中的所有字符依次压入栈中,然后依次将栈中的字符弹出并与原序列中的字符比较,如果全部相同则说明是回文,否则不是。
以下是Python实现:
```
def is_palindrome(s):
stack = []
for c in s:
if c != '@':
stack.append(c)
for c in s:
if c != '@':
if c != stack.pop():
return False
return True
s = input("请输入以@结尾的字符序列:")
if is_palindrome(s):
print("是回文")
else:
print("不是回文")
```
示例输入:
```
abba@
```
示例输出:
```
是回文
```
阅读全文