思路
- 模拟栈的进与出
用一个栈保存进栈数据,然后对比出栈数组的剩余数据是否与栈的出栈顺序相同
代码
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;
}
} 
京公网安备 11010502036488号