AB2 栈的压入、弹出序列

思路:

step1:定义一个辅助栈stack;创建一个计数器并置零:j=0;
step2:逐个将pushV的元素添加到辅助栈stack中,添加过程中如果stack的最后一个元素与popV中第j个元素相同,则将该元素弹出stack栈中,并且计数器+1;
step3:如果最后,j == len(popV),则证明全部元素都在内,满足要求;

代码如下:

class Solution:
    def IsPopOrder(self , pushV: List[int], popV: List[int]) -> bool:
        j = 0
        stack = []
        for i in pushV:
            stack.append(i)
            while stack != [] and stack[-1] == popV[j]:
                stack.pop()
                j += 1
        return j == len(popV)