思路

按照入栈顺序依次push,当遇到栈顶元素和出栈序列的元素相等时,pop(自动更新栈顶,出栈序列的索引+1)

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        /*
        *    新建一个栈,全部push,当top元素与输出序列的对应元素相等时,pop
        */
        stack<int> push_stack;
        int j=0;        // 代表输出序列的第几个元素
        for(int i = 0; i<pushV.size(); i++){
            push_stack.push(pushV[i]);


            while(!push_stack.empty() && push_stack.top()==popV[j]){
                push_stack.pop();
                j++;
            }
        }

        return push_stack.empty();
    }
};