python - 1. 두 개의 스 택 으로 대기 열 을 실현 합 니 다.

제목 설명:
  • 두 개의 스 택 으로 하나의 대기 열 을 실현 하고 대기 열의 Push 와 Pop 작업 을 완성 합 니 다.

  • 문제 풀이 방향:
  • 대열: 선진 선발
  • 스 택: 선진 후 출
  • 하나의 스 택 은 EnQueue 에 사 용 됩 니 다.
  • 들 어 올 때마다 원 소 를 이 창고 에 보 냅 니 다
  • 다른 스 택 에서 DeQueue 순 서 를 바 꿉 니 다.
  • 두 스 택 이 동시에 비어 있 을 때 return None
  • 두 번 째 스 택 에 요소 가 없 을 때 첫 번 째 스 택 의 요 소 를 모두 Push 하여 두 번 째 스 택 에 넣 습 니 다. 이때 맨 위 에 있 는 요 소 는 바로 팀 의 선두 이 고 바로 Pop 하면 됩 니 다
  • 두 번 째 스 택 에 요소 가 있 을 때 바로 Pop 정상 요소
  • class Solution:
        def __init__(self):
            self.stack1 = []
            self.stack2 = []
        def Push(self, e):
            self.stack1.append(e)
        def Pop(self):
            if len(self.stack2) == 0 and len(self.stack1) == 0:
                print('Empty')
                return None
            elif len(self.stack2) == 0:
                while self.stack1:
                        self.stack2.append(self.stack1.pop())
                return self.stack2.pop()
            else:
                return self.stack2.pop()

    좋은 웹페이지 즐겨찾기