建立一个辅助栈
向辅助栈中放入pushed栈中的元素
同时查找栈顶的元素 (根据popper数组的指针指向的数)
如果没有找到就继续入栈,如果找到就出栈,并且吧指针向后移动
当全部入栈时候,结束
public boolean validateStackSequences(int[] pushed, int[] popped) {
/** 建立一个辅助栈*/
Stack<Integer> stack = new Stack<>();
/** 向辅助栈中放入pushed栈中的元素
* 同时查找栈顶的元素 (根据popper数组的指针指向的数)
* 如果没有找到就继续入栈,如果找到就出栈,并且吧指针向后移动
* 当全部入栈时候,结束*/
int i = 0;
for (int num :
pushed) {
stack.push(num);
while (!stack.empty() && popped[i] == stack.peek()){
stack.pop();
i++;
}
}
return stack.empty();
}