首页 > 其他分享 >946.验证栈序列

946.验证栈序列

时间:2024-09-09 19:54:56浏览次数:3  
标签:popped 验证 946 top ++ pop pushed int 序列

题目

链接: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();
    }

标签:popped,验证,946,top,++,pop,pushed,int,序列
From: https://blog.csdn.net/2303_78940834/article/details/142067295

相关文章

  • 关于交叉验证的一些介绍
    在这篇文章中,我将介绍“交叉验证”这一评估泛化性能的统计学方法,它比起单次划分训练集与测试集的方法更稳定与全面。首先我会简单介绍它的概念,然后是分层k折交叉验证和其他策略,最后是一些代码实现。一、概念交叉验证(k-foldcross-validation),是指将数据集进行多次划分,分为几......
  • 力扣刷题——3177. 求出最长好子序列 II
    根据题意,暴力做法不可取,因为至少要对遍历位置之前的位置,以及不同的子序列阈值(跟k对应的那个)做循环。于是就能够想到使用动态规划的手段去解决问题,考虑需要保存的两个状态,当前序列末尾的数字、子序列阈值,设计一个二维的dp数组dp[i][j],其中i为位置索引,指代当前在nums数组中遍历的位......
  • 时间序列回归预测
    回归预测仅个人笔记使用,感谢点赞关注!深度学习LSTMPyTorch搭建LSTM实现时间序列预测:基于torch实现时间序列预测(多种方法)传统方法自回归树模型XGBLGBM组合模型......
  • 训练框架技术序列一:Megtron-LLM架构源码
    本文章涉及的Megatron-llm的XMind思维导图源文件和PDF文件,可在网盘下载:https://pan.baidu.com/s/1xRZD-IP95y7-4Fn0C_VJMg提取码:qxff一、引言Megatron-Core是一个基于PyTorch的开源库,专为在NVIDIAGPU上高效训练大型语言模型(LLMs)而设计。它提供了一系列GPU优化的训......
  • 随手记:uniapp小程序登录方式和小程序使用验证码登录
    小程序登录方式:方式一:小程序授权登录通过uni.login获取临时登录凭证code,向后端换取token。<u-buttontype="primary"shape="circle"@click="login">登录</u-button>login(){ uni.login({ provider:'weixin', success:loginRes=&......
  • 关于求合法括号子序列个数
    求合法括号子序列个数发了近半天时间都没人发现里面的致命错误()还好我悄咪咪改了题意背景合法括号串的定义如下:()是合法括号串。如果A是合法括号串,则(A)是合法括号串。如果A,B是合法括号串,则AB是合法括号串。子串与不同的子串的定义如下:字符串S的子串是S......
  • 手撕Python之序列类型
    1.列表---list索引的使用当我们有一个数据的时候,我们怎么将这个数据存储到程序呢?我们定义一个变量,将数据存储在变量中那么如果有100个数据呢?要定义100个变量吗?我们是可以用列表这个东西进行多个数据的存放列表的定义:[]空列表:[]列表:[元素1,元素2,元素3]列表中的内容......
  • 欺诈文本分类检测(十三):交叉训练验证
    1.引言交叉验证主要讨论的是数据集的划分问题。通常情况下,我们会采用均匀随机抽样的方式将数据集划分成3个部分——训练集、验证集和测试集,这三个集合不能有交集,常见的比例是8:1:1(如同前文我们所作的划分)。这三个数据集的用途分别是:训练集:用来训练模型,去学习模型的权重......
  • Elasticsearch-5.6版本安装,添加登录验证,修改密码
    一.ES简介Elasticsearch是一个实时的分布式存储,搜索、分析的引擎。他的模糊查询的强大效率,目前被很多企业所青睐。二.本文背景由于从ElasticStack6.8和7.1版本才开始支持登录验证,所以对于用之前版本的无法升级,又需要添加授权访问或者修改密码,可以参考本文中用到的......
  • 一文看懂CAPTCHA验证
    CAPTCHA代表“全自动公共图灵测试,用于区分计算机和人类”。这些测试充当身份验证机制,以确保网站流量来自真人,而不是机器人。CAPTCHA测试可以在您与网站交互的过程中出现在各个时间点,例如在登录尝试、表单提交期间,或者当您的浏览活动模仿机器人流量时(例如,多次刷新浏览器或快......