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