使用堆栈检查字符串的 Python 程序是回文
当需要使用堆栈数据结构检查字符串是否为回文时,会创建一个堆栈类,并定义push和pop方法来添加和删除堆栈中的值。另一种方法检查堆栈是否为空。
以下是相同的演示-
示例
class Stack_structure: def __init__(self): self.items= [] def check_empty(self): returnself.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'方法。
定义了另一个空字符串,将字符串反转。
这个反转的字符串存储在空字符串中。
这个反转的字符串和来自用户的字符串进行比较。
如果它们相同,则表示它是回文。
否则,它不是回文。
相关输出显示在控制台上。