剑指 Offer 31. 栈的压入、弹出序列
作者:互联网
https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof/
思路
创建一个辅助栈,将第一个序列按照压入顺序压入辅助栈,此时判断辅助栈栈顶元素与第二序列的第
i
个元素是否相等,如果不相等,第一序列继续压,如果辅助栈的栈顶与第二序列的当前节点相等,把辅助栈的栈顶弹出,并且把第二序列的当前指针右移一位。
正解代码
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
Stack<Integer> stack = new Stack<>();
int i = 0;
for(int num : pushed){
stack.push(num);
while(!stack.isEmpty() && stack.peek() == popped[i]){
stack.pop();
i++;
}
}
return stack.isEmpty();
}
}
标签:辅助,压入,Offer,int,31,pushed,序列,stack 来源: https://www.cnblogs.com/zhbeii/p/15422406.html