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

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

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

  • 比较此反转后的字符串和来自用户的字符串。

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

  • 否则,它不是回文。

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

更新于: 2021年4月14日

853 次查看

启动您的 职业生涯

通过完成课程获得认证

立即开始
广告