设计一个程序用栈判断一个字符串是否为回文,并给出总程序
时间: 2024-05-14 14:14:02 浏览: 151
以下是一个Python程序,用栈判断一个字符串是否为回文:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return not bool(self.items)
def size(self):
return len(self.items)
def is_palindrome(string):
s = Stack()
for char in string:
s.push(char)
reversed_string = ""
while not s.is_empty():
reversed_string += s.pop()
return string == reversed_string
print(is_palindrome("racecar")) # True
print(is_palindrome("hello")) # False
```
程序首先定义了一个Stack类,该类实现了栈的基本操作。接下来,程序定义了一个函数is_palindrome,该函数接受一个字符串作为参数,并使用栈来判断该字符串是否为回文。
函数首先创建一个空的栈,并将字符串中的每个字符依次压入栈中。接着,程序从栈中弹出字符,将它们组成一个新的字符串。最后,程序比较原始字符串和反转后的字符串是否相等,如果相等,则该字符串是回文,否则不是。
在主程序中,程序测试了is_palindrome函数,分别传入了"racecar"和"hello"两个字符串作为参数,并打印出了函数的返回值。
阅读全文