/*解题思路:
* 利用辅助栈,先压入压入序列的第一个元素,然后判断辅助栈是否为空
以及栈顶元素是否等于弹出序列的第一个元素,如果相等,辅助栈弹出该
元素,压入序列和弹出序列都往后移动一位;若不相等,压入压入序列的
第二个元素,判断栈顶是否与弹出序列第一个元素相等。。。
若遍历完了压入序列,辅助栈不为空,说明不是弹出序列;、
辅助栈为空,说明是弹出序列
*/
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> stack=new Stack<>();
int popNum=0; //弹出序列下标
for(int i=0;i<pushA.length;i++){
stack.push(pushA[i]);
while(!stack.empty() && stack.peek()==popA[popNum]){
stack.pop();
popNum++;//弹出下标往后移动一位
}
}
return stack.empty();
}
}