首页 > 其他 > 详细

【剑指offer】【栈】31.栈的压入、弹出序列

时间:2020-03-29 14:32:37      阅读:52      评论:0      收藏:0      [点我收藏+]

栈的压入、弹出序列

   两种操作:1)将下一个数加入栈中;2)将当前栈顶元素弹出;二者只能有一个执行
   判断当前栈顶元素与下一个要输出的数是否一样:
       一样,将栈顶元素弹出;不同,将输入序列中下一个数入栈。
class Solution {
public:
    bool isPopOrder(vector<int> pushV,vector<int> popV) {
        if(pushV.size() != popV.size()) return false;
        
        int n = pushV.size();
        stack<int> st;
        int j = 0;
        for(int i = 0; i < n; i++)
        {
            st.push(pushV[i]);
            while(!st.empty() && st.top() == popV[j]) st.pop(), j++;
            
        }
        return st.empty();
    }
};

【剑指offer】【栈】31.栈的压入、弹出序列

原文:https://www.cnblogs.com/Trevo/p/12590753.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!