当前位置: 首页 > article >正文

946.验证栈序列

题目

链接:leetcode链接
在这里插入图片描述

思路分析

我们知道一个栈的一种入栈顺序可能对应多种出栈顺序,让我们肉眼来判断一下,还是很容易判断出来是不是正确的出栈顺序,那么如何用代码来实现呢?

OK,先掏一个栈s出来再说

int i = 0;

先把pushed进一个栈s,然后比较s.top 与 popped[i],
如果相等,就s.pop,同时++i;
++i后再与s.top继续比较,直到不相等跳出循环

如果不相等,就继续将pushed入栈

pushed走完了之后,去查看s是否为空,如果s为空,说明匹配上了,否则,不匹配。

在这里插入图片描述

代码

bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int> s;
        int i = 0;
        
        for(auto e:pushed)
        {
            s.push(e);
          
            while(!s.empty()&&s.top() == popped[i])
            {
                ++i;
                s.pop();
            }
           
        }

        return s.empty();
    }

http://www.kler.cn/a/297685.html

相关文章:

  • Xinstall助力App全渠道统计,参数传递下载提升用户体验!
  • TCP与UDP的区别详解
  • spring boot 中配置clcikhouse,mybatis-plus方式
  • MyBatis 源码解析:XMLScriptBuilder 工作机制
  • 苍穹外卖()
  • PDF 全文多语言 AI 摘要 API 数据接口
  • QT接入播放摄像头RTSP流
  • jmeter多线程批量插入数据
  • C++位图的实现与详解
  • 【Python机器学习】卷积神经网络(CNN)——在NLP中使用CNN
  • 等待实质审查的商标可以用吗!
  • HTML与CSS网页制作指南
  • Windows系统下安装JMeter
  • 客户端负载均衡Ribbon 小实例
  • Class4——Esp32|Thonny两种方式同过电脑控制LED灯,路由器与电脑自带热点连接ESP32
  • 已配置好的Linux CentOS7虚拟机转换为可视化界面问题
  • VUE面试题1*
  • 卷积神经网络(二)CIFAR100类别分类
  • (计算机网络)运输层
  • 第100+24步 ChatGPT学习:概率校准 Beta Calibration