题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

思路

按照入栈顺序依次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();
    }
};
全部评论

相关推荐

起名字真难233:人家只有找猴子的预算,来个齐天大圣他们驾驭不住呀😂😂
点赞 评论 收藏
分享
kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务