C++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pushV int整型vector 
     * @param popV int整型vector 
     * @return bool布尔型
     */
    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
        // write code here
        // !!辅助栈temp,popV下标j
        // 1. 访问pushV并记录在tempV中,直至temp.top=popV[j]
        // 2. 弹出temp.top,popV下标j++,
        //    若与temp.top相等,则继续弹出;否则重复1
        // 3. 若遍历完pushV,且temp为空,则true;否则false
        int n = pushV.size();
        stack<int> temp;
        int j = 0; // popV下标
        for (int i=0; i<n; i++) {
            temp.push(pushV[i]);
            while (temp.size() && temp.top()==popV[j]) { // 两个顺序不能换哦
                temp.pop();
                j++;
            }
        }
        return temp.empty();
    }
};

举一反三:

题解 | 用两个栈实现队列

题解 | 包含min函数的栈