class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pushV int整型vector
* @param popV int整型vector
* @return bool布尔型
*/
bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
//用栈来模拟实现一下
stack<int> st;
int pushi = 0, popi = 0;
while (pushi < pushV.size()) {
//循环一次就先push插入pushV中的数据
st.push(pushV[pushi]);
pushi++;
//此时如果这个栈不为空且栈顶的数据与弹出数组中的数据相等时
//让栈顶数据出,popi++,以此判断出栈的顺序是否一致
while (!st.empty() && st.top() == popV[popi]) {
st.pop();
popi++;
}
}
//走完这个循环后出来,如果是true的话,st中的数据应该是已经被pop完了
//所以如果st中还有数据,则说明它是false
if (!st.empty()) {
return false;
} else {
return true;
}
}
};