Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python สำหรับตรวจสอบสตริงคือ Palindrome โดยใช้ Stack


เมื่อจำเป็นต้องตรวจสอบว่าสตริงเป็นพาลินโดรมโดยใช้โครงสร้างข้อมูลสแต็กหรือไม่ คลาสสแต็กจะถูกสร้างขึ้น และกำหนดเมธอด 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'

  • มีการกำหนดสตริงว่างอื่น และสตริงจะถูกย้อนกลับ

  • สตริงที่ย้อนกลับนี้ถูกเก็บไว้ในสตริงว่าง

  • สตริงที่ย้อนกลับนี้และสตริงจากผู้ใช้จะถูกเปรียบเทียบ

  • ถ้าเหมือนกันแสดงว่าเป็นพาลินโดรม

  • ไม่งั้นก็ไม่ใช่พาลินโดรม

  • เอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล