思路:
- 建立一个栈来辅助
- for循环中i做popA的下表
- while循环直到st.peek == popA[i]退出
- 用j做pushA的下标
代码实现:
int len = pushA.length;
//定义一个栈来辅助完成
Stack<Integer> st = new Stack<>();
//用于计数做判断
int j = 0;
//把popA中每个元素都遍历一遍
for (int i = 0; i < len; i++) {
//j就是防止越界和作为下标,当栈顶元素与当前的popA的元素一样退出循环
while (j < len && (st.isEmpty() || st.peek() != popA[i])) {
//因为要根据栈顶和popA的元素判断是否要放入栈,所有用j做下标
st.push(pushA[j]);
j++;
}
//相等就删除栈元素
if (st.peek() == popA[i]) {
st.pop();
} else {
//有不相等的则不能实现返回false
return false;
}
}
return true;