这要设置一个辅助栈,假如有push序列和要求弹出的pop序列,依次把push序列中的元素压到辅助栈中,在压入的同时,如果辅助栈的栈顶元素和pop序列的元素相同,那么弹出辅助栈的栈顶和pop序列栈顶,或者设个pop序列的index(这样index后移一位就可以了)
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public boolean IsPopOrder(int [] pushA,int [] popA) {
if (pushA.length == 0|| popA.length == 0){
return false;
}
Stack<Integer> s = new Stack<Integer>();
int popIndex = 0;
for(int a:pushA){
s.push(a);
while(!s.empty() && s.peek()==popA[popIndex]){
s.pop();
popIndex++;
}
}return s.empty();
}
}