力扣刷题:21-验证栈序列(946)

125 阅读1分钟

给定入栈和出栈顺序,判定是否合理,这道题可以使用一个栈进行模拟实验,只要处理完所有元素后,这个栈为空,就说明是合理的。

下面是C++实现的代码:

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int> s;
        int poppedIndex = 0;
        for (auto i : pushed) {
            s.push(i);
            while (!s.empty() && s.top() == popped[poppedIndex]) {
                s.pop();
                poppedIndex++;
            }
        }
        return s.empty();
    }
};