C++常规思路 借用栈结构模拟一遍

栈的压入、弹出序列

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

脑子怎么思考这里就怎么写 按照所给的入栈序列操作遍历入栈 如遇到栈顶的元素和出栈序列的当前元素相等时 则弹出栈顶元素且出栈序列的当前位置往后移动 入栈序列遍历完毕 如果栈为空且出栈序列也遍历完毕 则是该压栈序列的弹出序列,其他情况皆不是。

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        stack<int>s;
        int pos=0;
        for(int i=0;i<pushV.size();i++)
        {
                s.push(pushV[i]);
            while(pos<popV.size()&&s.top()==popV[pos])
            {
                    s.pop();
                    pos++;
            }
        }
        return (pos==popV.size()&&s.empty())?true:false;
    }
};
全部评论

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务