【LeetCode】---剑指Offer 31.栈的弹出压入序列

一、题目描述:

在这里插入图片描述

二、算法原理:

核心思想:
入栈的栈顶元素跟出栈序列进行匹配,入一个匹配一个。注意:结束的标志就是入栈序列走完了。

在这里插入图片描述

在这里插入图片描述

三、代码实现:


class Solution 
{
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pushV int整型vector 
     * @param popV int整型vector 
     * @return bool布尔型
     */
    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) 
    {
        // write code here

        //pushV:入栈序列  popV: 出栈序列
        
        // 1.定义2个移动下标来遍历2个序列 
        int pushi=0,popi=0;
        // 2.创建一个栈来实现匹配
        stack<int> st;

        //(1)整个程序结束的标志:入栈序列走完了!
        while(pushi<pushV.size())
        {
            //(2)先入栈
            st.push(pushV[pushi++]);
            //(3)判断匹配:
            // ①成功:因为可能有持续输出所以用while循环:
            while(!st.empty()&&st.top()==popV[popi])
            {
                popi++;
                st.pop();
            }
            // ②匹配失败:回到(2)继续

        }
        //!!!最终的判定结果:如果入栈序列 进入(st)走完了 并且 为空,必然两者匹配!!!
        // 否则不匹配!
        return st.empty();
    }
};

相关推荐

  1. offer面试题31序列

    2024-04-30 22:34:02       16 阅读
  2. 牛客网 AB2.序列

    2024-04-30 22:34:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-30 22:34:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-30 22:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-30 22:34:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-30 22:34:02       20 阅读

热门阅读

  1. python实现Web开发的工具

    2024-04-30 22:34:02       11 阅读
  2. Python FastApi 解决跨域及OPTIONS预请求处理

    2024-04-30 22:34:02       14 阅读
  3. 汇编语言-DIV指令(除法指令)

    2024-04-30 22:34:02       11 阅读
  4. 让新手变中手的ChatGPT 使用方法

    2024-04-30 22:34:02       25 阅读
  5. linux&windowns文件共享之samba

    2024-04-30 22:34:02       13 阅读
  6. python高阶应用

    2024-04-30 22:34:02       10 阅读