/**
借助一个辅助栈,将压栈序列依次压入辅助栈,直到辅助栈的栈顶元素等于弹出序列的制定元素(开始时指向弹出序列首元素);
当辅助栈的栈顶元素等于弹出序列的制定元素时,辅助栈出栈,同时弹出序列指向下一个元素,
继续判断,直到辅助栈栈顶元素不等于弹出序列指定元素;
重复上面两步骤,直到压栈序列遍历完,如果辅助栈为空,则说明是弹出序列,否则不是。
*/
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
stack<int> st;
int index = 0;
for(int i=0;i<pushV.size();i++){
st.push(pushV[i]);
while(index<popV.size() && st.top()==popV[index]){
st.pop();
index++;
}
}
return st.empty();
}
};