Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

문자열을 확인하는 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' 메서드가 호출됩니다.

  • 다른 빈 문자열이 정의되고 문자열이 반전됩니다.

  • 이 반전된 문자열은 빈 문자열에 저장됩니다.

  • 이 반전된 문자열과 사용자의 문자열을 비교합니다.

  • 동일하면 회문임을 의미합니다.

  • 그렇지 않으면 회문이 아닙니다.

  • 관련 출력이 콘솔에 표시됩니다.