42.栈的压入、弹出序列

题目链接:

class Solution {
public:
    bool isPopOrder(vector<int> pushV,vector<int> popV) {
        stack<int> s;
        int k = 0, n = pushV.size();
        if (pushV.size() != popV.size()) return false;
        for (auto x : popV) {
            while (s.empty() || s.top() != x) {
                if (k < n) s.push(pushV[k++]);
                else return false;
            }
            s.pop();
        }
        return true;
    }
};

注:
本题相较于Leetcode 946,需要额外判断一下两个序列的长度是否相等。若不相等,则返回false;

你可能感兴趣的:(#,栈和队列,AcWing,数据结构,算法)