左这道题目首先要明白栈这一数据结构,后进先出。
先用一个栈来保存进栈的数据,再对比出栈的数据
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public boolean IsPopOrder(int [] pushA,int [] popA) {
Stack<Integer> S1 = new Stack<Integer>();
int len = pushA.length;
int j=0,i=0;
while(i<len)
{
if(pushA[i]==popA[j]){
j++;
int mk1 = 0;
while(mk1 == 0&&!S1.empty()){
int mk = S1.peek();
if(mk==popA[j]){
S1.pop();
j++;
}else{
mk1 = 1;
}
}
i++;
}else{
S1.push(pushA[i]);
i++;
}
}
if(j!=len){
return false;
}else{
return true;
}
}
}