Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để kiểm tra chuỗi là Palindrome bằng cách sử dụng Stack

Khi cần kiểm tra xem một chuỗi có phải là palindrome hay không bằng cách sử dụng cấu trúc dữ liệu ngăn xếp, một lớp ngăn xếp sẽ được tạo và các phương thức push và pop được xác định để thêm và xóa các giá trị khỏi ngăn xếp. Một phương pháp khác kiểm tra xem ngăn xếp có trống hay không.

Dưới đây là một minh chứng cho điều tương tự -

Ví dụ

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")

Đầu ra

Enter the string... MalayalaM
The string is a palindrome

Giải thích

  • Một lớp có tên là ‘Stack_ Structure’ được xác định bằng phương thức ‘init’.

  • Phương thức này khởi tạo một danh sách trống.

  • Một phương thức khác có tên là ‘check_empty’ được định nghĩa để kiểm tra xem ngăn xếp có trống hay không.

  • Một phương thức khác có tên là ‘push_val’ được xác định để thêm các phần tử vào ngăn xếp.

  • Một phương thức khác có tên là ‘pop_val’ được xác định để xóa các phần tử khỏi ngăn xếp.

  • Một phiên bản của 'Stack_ Structure' này được xác định.

  • Chuỗi được lấy từ người dùng.

  • Nó được lặp lại và phương thức ‘check_empty’ được gọi trên nó.

  • Một chuỗi trống khác được xác định và chuỗi được đảo ngược.

  • Chuỗi đảo ngược này được lưu trữ trong chuỗi trống.

  • Chuỗi đảo ngược này và chuỗi từ người dùng được so sánh.

  • Nếu chúng giống nhau, điều đó có nghĩa là nó là một hội chứng pali.

  • Nếu không, nó không phải là palindrome.

  • Đầu ra có liên quan được hiển thị trên bảng điều khiển.