- 如果popv下一个弹出的数字刚好是辅助栈中的栈顶,那么直接弹出
- 如果下一个弹出的数字不是栈顶,那么把pushv中还没有入栈的数字压入辅助栈,直到把下一个需要弹出的数字压入栈顶为止
- 如果所有数字都压入栈后仍然没有找到下一个弹出的数字,那么该序列不可能是一个弹出序列
class Solution: def IsPopOrder(self, pushV, popV): # write code here helper = [] for j in popV: if helper and j == helper[-1]: helper.pop() elif j in pushV: i = 0 while j != pushV[i] and i < len(pushV): helper.append(pushV[i]) i += 1 pushV = pushV[i+1:] else: return False return True