思路
- 模拟栈的进与出
用一个栈保存进栈数据,然后对比出栈数组的剩余数据是否与栈的出栈顺序相同
代码
import java.util.*; public class Solution { public boolean IsPopOrder(int [] pushA,int [] popA) { Stack<Integer> stack=new Stack<>(); int p=0; for(int i=0;i<pushA.length;i++){ stack.push(pushA[i]); while(!stack.isEmpty() &&stack.peek()==popA[p]){ p++; stack.pop(); } } for(int i=p;i<popA.length;i++){ if(stack.isEmpty()|| popA[i]!=stack.pop()){ return false; } } return true; } }