使用堆栈检查字符串是否为回文的 Python 程序
pythonserver side programmingprogramming
当需要使用堆栈数据结构检查字符串是否为回文时,会创建一个堆栈类,并定义推送和弹出方法来从堆栈中添加和删除值。另一种方法检查堆栈是否为空。
下面是相同的演示 −
示例
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’方法。
定义另一个空字符串,并将该字符串反转。
将反转后的字符串存储在空字符串中。
将反转后的字符串与用户输入的字符串进行比较。
如果相同,则表示是回文。
否则,不是回文。
控制台上显示相关输出。