解题思路:新建一个栈s来模拟这个压入弹出的操作,依次压入pushed序列中的每一个元素,然后循环判断当前栈顶是否和弹出序列中待弹出元素相等,相等则弹出栈顶,指向popped元素的指针指向下一个待弹出元素,最后判断栈s是否为空,为空则返回True,反之返回False
class Solution:
def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:
s, i = [], 0
for x in pushed:
s.append(x)
while(len(s) and s[-1] == popped[i]):
i += 1
s.pop()
return not s