import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pushV int整型一维数组
* @param popV int整型一维数组
* @return bool布尔型
*/
public boolean IsPopOrder (int[] pushV, int[] popV) {
Stack<Integer> st = new Stack<>();//辅助栈
int p1 = 0, p2 = 0; //辅助指针
while (p2 < popV.length) {
// 辅助栈为空或者栈顶不等于要弹出的元素时从push栈中压入元素
while (p1<pushV.length
&&(st.empty() || st.peek() != popV[p2])) {
st.push(pushV[p1++]);
}
if (st.peek() == popV[p2]) {
st.pop();
p2 += 1;
}else{//此时已没有元素可以压入栈,且辅助栈的栈顶不等于输出元素(不匹配)。
return false;
}
}
return true;
}
}