LeetCode——栈的压入、弹出序列


这里我用下面的例子子来讲解一下模拟栈的实现
例子1:pushed = [1,2,3,4,5] popped = [4,5,3,2,1]
思路:第一步:我们先创建一个栈,然后将pushed的数据压进去

第二步:判断! 当压入栈的数据和popped第一个数据一样的时候,我们就出数据。ps:这时可以用一个posi来记录要比较的数据

第三步:最后判断栈是否为空,为空就true,否则则false




下面是源码:

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int> st;
        int posi = 0;
        for(auto pushval : pushed)
        {
            st.push(pushval);

            while(!st.empty() && st.top() == popped[posi])
            {
                st.pop();
                ++posi;
            }
        }
        
        return st.empty();
    }
}; 

版权声明:本文为博主作者:這~悸ベ雨落憂殇原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/m0_72165281/article/details/132614039

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2024年5月6日
下一篇 2024年5月6日

相关推荐