利用栈和队列编写一个判断字符序列是否是回文的函数,并设计一个主函数进行测试。
时间: 2024-05-14 18:18:16 浏览: 105
判断字符序列是否是回文
5星 · 资源好评率100%
以下是利用栈和队列编写的判断字符序列是否是回文的函数:
```python
class Palindrome:
def __init__(self):
self.stack = []
self.queue = []
def pushCharacter(self, ch):
self.stack.append(ch)
def enqueueCharacter(self, ch):
self.queue.insert(0, ch)
def popCharacter(self):
return self.stack.pop()
def dequeueCharacter(self):
return self.queue.pop()
def isPalindrome(self, s):
for ch in s:
self.pushCharacter(ch)
self.enqueueCharacter(ch)
for i in range(len(s) // 2):
if self.popCharacter() != self.dequeueCharacter():
return False
return True
```
这个函数首先将字符序列中的每个字符都同时压入栈和队列中,然后依次弹出栈和队列中的字符进行比较,如果全部相等则该字符序列是回文的。
以下是设计的主函数进行测试:
```python
def main():
p = Palindrome()
s = input("请输入一个字符串:")
if p.isPalindrome(s):
print("是回文")
else:
print("不是回文")
if __name__ == "__main__":
main()
```
运行程序后,输入一个字符串,程序会判断该字符串是否是回文并输出结果。
阅读全文