题目简介:
给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。
示例 1:
1 | 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] |
示例 2:
1 | 输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2] |
提示:
1 <= pushed.length <= 10000 <= pushed[i] <= 1000pushed的所有元素 互不相同popped.length == pushed.lengthpopped是pushed的一个排列
思路:
模拟栈,将pushed数组中的元素依次入栈,若栈顶元素遇到和popped数组中的当前元素相等时,则不断出栈(模拟出栈)。
最后观察栈是否为空即可。
代码如下:
1 | class Solution { |