- 建立一个栈,模拟入栈出栈过程
- 因为可能是分段入栈,所以每次入栈一个元素后,将栈顶元素与出栈序列中的当前位置的元素(用pop_cur记录)进行对比,如果相等便出栈且更新pop_cur;然后循环进行比对出栈,直到栈顶元素与出栈序列中的当前位置的元素不等
- 最后判断栈是否为空即可
# -*- coding:utf-8 -*-
class Solution:
def IsPopOrder(self, pushV, popV):
# write code here
stack = []
pop_cur = 0
for i in range(len(pushV)):
stack.append(pushV[i])
while stack and stack[-1] == popV[pop_cur]:
stack.pop()
pop_cur += 1
return stack == []


京公网安备 11010502036488号