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