使用栈检查字符串是否为回文 Python 程序
当需要使用栈数据结构检查字符串是否为回文时,会创建一个栈类,并定义 push 和 pop 方法来添加和删除栈中的值。另一个方法检查栈是否为空。
下面是相同内容的演示 -
示例
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”方法。
定义另一个空字符串,并反转字符串。
此反转后的字符串存储在空字符串中。
比较此反转后的字符串和来自用户的字符串。
如果它们相同,则表示它是回文。
否则,它不是回文。
在控制台上显示相关输出。
广告