leetcode 946. 스 택 시퀀스 검증

946. 검증 스 택 시퀀스 는 pushed 와 popped 두 시퀀스 를 지정 합 니 다. 모든 시퀀스 의 값 은 중복 되 지 않 습 니 다. 최초의 빈 스 택 에서 push 와 팝 업 팝 업 시퀀스 의 결과 일 수 있 을 때 만 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.
예시 1: 입력: pushed = [1, 2, 3, 4, 5], popped = [4, 5, 3, 2, 1] 출력: true 해석: 우 리 는 다음 순서대로 실행 할 수 있다: push (1), push (2), push (3), push (4), pop () - > 4, push (5), pop () - > 5, pop () - > 3, pop () - > 2, pop () - >
4. 567917. 매번 순환 할 때마다 우 리 는 push 숫자 를 창고 에 넣 습 니 다.현재 스 택 에 있 는 원 수 를 스 택 꼭대기 에 있 는 지 비교 하고 없 으 면 계속 순환 하여 스 택 에 들 어 갑 니 다
4. 567917. 현재 스 택 꼭대기 의 요소 가 스 택 에 있 는 요소 와 같다 면 pop 스 택 을 나 가 고 스 택 을 탄 후에 popped 시퀀스 의 색인 을 옮 긴 다음 에 스 택 에 있 는 요소 와 스 택 꼭대기 요소 가 같 는 지 계속 봅 니 다
class Solution:
    def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:
        stack, i = [], 0
        for num in pushed:
            stack.append(num)#        
            while stack and stack[-1] == popped[i]:#      
                stack.pop()
                i += 1#          
        return not stack

좋은 웹페이지 즐겨찾기