栈的压入和弹出

栈的压入、弹出序列

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

/*
模拟出栈入栈
用一个栈s保存入栈序列,
当找到出栈的元素后出栈,符合出栈序列就出栈,不符合继续入栈。
直到入栈序列全部遍历完,s中是否还有元素
*/

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        if(pushV.size()!=popV.size())return false;
        int i=0,j=0;
        stack<int> s;//s保存入栈序列
        while(i<pushV.size()){//当入栈序列全部遍历完结束
            if(pushV[i]!=popV[j]){//把出栈的元素前的所有值入栈
                s.push(pushV[i]);++i;//记录入栈序列访问位置
            }else{
                ++i;++j;//入栈,出栈访问位置后移,代表已经入栈出栈。
                while(!s.empty()&&s.top()==popV[j]){//判断已经入栈的元素是否符合出栈序列,继续出栈
                s.pop();++j;//否则继续入栈找到出栈元素。
                }
            }
        }
        if(s.empty())return true;//最后还有元素没有出栈返回false
        return false;
    }
};

全部评论

相关推荐

2025年初,新的一年开始,我给自己暗暗打气,发誓今年一定要拿到offer。如今2025年即将结束,找工作仍然没有任何水花,如今的失意和落魄和年初信心满满的姿态形成鲜明对比,想必也是因为被社会毒打,认清现实了吧。先分享一下贴主的背景,本人女,本科末流985文科专业,后来保送到华五,成绩一直是班级第一,有过国奖,实习有多段头部大厂经历。发贴的直接原因是今天华为面试挂,在反思中有很多复杂的想法,包括对自身能力的怀疑、对面试官所提问题的不解、对大环境的无奈。贴主是一个说话温柔、不喜欢咄咄逼人、有点社恐的人(基本上算是人们眼中对小女生的刻板印象,所以在历次群面中基本全挂(看到大家争抢当leader、t...
在找内推的小虾米:感觉这一段经历和我好像啊,前段时间面了很多车企,面试项目经历各种被拷打,大多数都没过一面,最有希望拿offer的一个终面挂了把我干破防了,打电话给爸妈哭了一个多小时才缓过来。我也开始否定自己,否定自己的一切,包括性格,能力,成长经历。。。最后面了深圳的某家公司,面试官人都挺友好,提的问题有深度但找到切入点 ,最后hr也按岗位最高的标准给的offer,我才发现自己并没有这么不堪,只是我的能力和经验和之前的岗位要求不那么符合而已。帖主一定不要灰心,招聘的窗口期还有很长很长,保持自信扬长避短,一定有企业能发现你的闪光点,祝好。
我的求职进度条
点赞 评论 收藏
分享
挥毫自在:想白嫖你呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务