剑指 Offer 第31题:栈的压入、弹出序列
2022-07-27 本文已影响0人
放开那个BUG
1、前言
题目描述2、思路
思路就是模拟栈的弹出。
首先遍历 pushed 数组,如果与 poped 数组不想等,那么便把 pushed 数组中的元素压栈;如果栈顶的元素与 popped 数组的元素想等,则栈弹出栈顶,并且 popped 数组的元素进1。最后判断栈是否为空。
3、代码
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
if(pushed.length == 0 || popped.length == 0){
return pushed.length == popped.length;
}
Stack<Integer> stack = new Stack<>();
int j = 0;
for(int num : pushed){
stack.push(num);
while(j < popped.length && !stack.isEmpty() && popped[j] == stack.peek()){
stack.pop();
j++;
}
}
return stack.isEmpty();
}
}