每日一题:验证栈序列(LeetCode 946)

题目

给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。

解答

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int> stk;
        int popIdx = 0;
        for(int i = 0; i < pushed.size(); i++)
        {
            stk.push(pushed[i]);
            while(stk.size() && stk.top() == popped[popIdx])
            {
                stk.pop();
                popIdx++;
            }
        }

        return !stk.size();

    }
};
THE END
分享
二维码
打赏
海报
每日一题:验证栈序列(LeetCode 946)
题目 给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否……
<<上一篇
下一篇>>