使用堆栈检查字符串是否为回文的 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’方法。

  • 定义另一个空字符串,并将该字符串反转。

  • 将反转后的字符串存储在空字符串中。

  • 将反转后的字符串与用户输入的字符串进行比较。

  • 如果相同,则表示是回文。

  • 否则,不是回文。

  • 控制台上显示相关输出。


相关文章