使用栈检查字符串是否为回文的Python程序
如果需要使用栈数据结构检查一个字符串是否为回文,则需要创建一个栈类,并定义推入和弹出方法以添加和删除栈中的值。另一个方法检查栈是否为空。
以下是相同的演示−
更多Python相关文章,请阅读:Python 教程
样例
class Stack_structure:
def __init__(self):
self.items = []
def check_empty(self):
return self.items == []
def push_val(self, data):
self.items.append(data)
def pop_val(self):
return self.items.pop()
my_instance = Stack_structure()
text_input = input('Enter the string... ')
for character in text_input:
my_instance.push_val(character)
reversed_text = ''
while not my_instance.check_empty():
reversed_text = reversed_text + my_instance.pop_val()
if text_input == reversed_text:
print("The string is a palindrome")
else:
print("The string isn't a palindrome")
输出
Enter the string... MalayalaM
The string is a palindrome
说明
-
定义一个名为’Stack_structure’的类,并使用init方法初始化一个空列表。
-
定义一个检查栈是否为空的方法,并命名为’check_empty’。
-
定义一个名为’push_val’的方法,它可以向栈中添加元素。
-
定义一个名为’pop_val’的方法,它可以从栈中删除元素。
-
定义了’Stack_structure’的实例。
-
从用户获取字符串。
-
对其进行迭代,并在其上调用’check_empty’方法。
-
定义了另一个空字符串,并颠倒字符串的顺序。
-
将该反转字符串存储在空字符串中。
-
将该反转字符串与来自用户的字符串进行比较。
-
如果它们相同,则表示它是一个回文字符串。
-
否则,它不是回文字符串。
-
在控制台上显示相关输出。