题解
思路
代码
class Solution:
### 1209 模拟出栈(40 ms,13.5 MB)
def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:
# 定义辅助栈进行模拟出栈,初始化出栈popped的下标为0
stack, i = [], 0
# 遍历入栈中的每一个元素,加入辅助栈中
for num in pushed:
stack.append(num)
# 若辅助栈非空 且 入栈pushed的栈顶元素与出栈popped中待出栈的元素相同,则辅助栈进行循环出栈(进行模拟),出栈popped的下标后移
while stack and stack[-1] == popped[i]:
stack.pop()
i += 1
return not stack # 若辅助栈中还有剩余元素,表示模拟失败,即不是可能的出栈序列