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

栈的压入、弹出序列

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

思路

  1. 先将pushV数组中的值入栈
  2. 将栈顶元素与popV数组的值依次比较:相等,popV数组元素向后移动一位,出栈里的数据一位;不等或栈为空结束。
  3. 判断popV数据是否走完,走完就匹配,返回true;否则返回false。
class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        stack<int> st;
        int i = 0;//控制入栈的pushV数据下表
        int j = 0;//控制栈元素的pop,记录其popv长度
        while(i < pushV.size()){
            // pushV数组的值入栈
            st.push(pushV[i]);
            ++i;

            //出栈,pop数组值依次与栈里面的数据比较
            //若相等 pop ,出栈里的数据 ; 若不等 结束
            while(!st.empty() && st.top() == popV[j]){
                st.pop();
                ++j;
            }
        }
        return j == popV.size();//j走完popv,是匹配
    }
};
全部评论

相关推荐

沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务