输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。

示例 1:

输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
输出:true
解释:我们可以按以下顺序执行:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1
示例 2:

输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
输出:false
解释:1 不能在 2 之前弹出。

思路:

用一个栈辅助验证,按照pushed数组的顺序先压栈,若栈顶元素与popped数组匹配,则一直pop,最后判断栈是否为空即可。

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

剑指offer 31.栈的、压入弹出序列相关推荐

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

    [LeetCode]剑指 Offer 31. 栈的压入.弹出序列 文章目录 [LeetCode]剑指 Offer 31. 栈的压入.弹出序列 package offer;import java.uti ...

  2. 剑指Offer 31 栈的压入、弹出序列

    栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2 ...

  3. 剑指offer——31.栈的压入、弹出序列(想法不错,比剑指的简单)

    题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...

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

    声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.问题描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. 如第一个输入序列为{1 2 ...

  5. 剑指 Offer 31. 栈的压入、弹出序列【无取巧,易于理解!】

    看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 输 ...

  6. 【算法】剑指 Offer 31. 栈的压入、弹出序列 【重刷】

    1.概述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...

  7. 【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)

    文章目录 题目描述 代码 && 思路 二刷 题目描述 打卡第三天!加油加油- 数据结构笔试题貌似也会考= =,不过考法不一样,有点规律. 总的来说还是挺有意思的,我们直接来看代码吧- ...

  8. 【剑指offer-Java版】22栈的压入弹出序列

    栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...

  9. 剑指Offer之栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入书序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相同.例如1.2.3.4.5是某栈的压入序列,序列5.4.3.2.1是该栈对应的一 ...

  10. 剑指offer:栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

最新文章

  1. weblogic从入门到飞起(部署应用、日志)(六)
  2. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
  3. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
  4. 使用Java程序通过http post访问ABAP Netweaver服务器
  5. 疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...
  6. 打开约束指令,让编码更规范
  7. 运营管理整改报告范文_整改报告怎么写(安全检查整改报告范文)
  8. (摘要)100个伟大的商业理念:理念35:引爆流行
  9. cdlinux U盘启动制作方法
  10. ue 清理缓存_浏览器缓存数据清理
  11. Access数据库修复 压缩
  12. 一种车牌识别摄像机在立体车库中的应用方案
  13. Java类和对象之对象组合之求圆柱体积
  14. 京东淘宝天猫API销量接口
  15. 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法
  16. 【云周刊】第130期:阿里研究院发布新网商五大预测,2020年将诞生第一个机器人网商?...
  17. 华为笔记本没有网线口_matebook 14有网线接口吗
  18. bugku-PWN-瑞士军刀解析过程
  19. tar.bz2压缩方法
  20. Windows窗口与消息

热门文章

  1. word-break 对一个字符串根据给出的字典判断是否可以根据字典切分(DP问题)
  2. 17 PP配置-生产计划-总体维护工厂参数
  3. 28 MM配置-采购-采购申请-定义凭证类型
  4. 网络商务信息与计算机的关系,计算机与电子商务的关系,
  5. vue 前台文本修改触发事件_利用VBA代码禁用触发事件及对工作薄修改的保存方案...
  6. MySQL:数据库还原问题
  7. tf.div()除法运算
  8. tomcat-servlet-AJAX最基础例子
  9. layui复选框组件:如何操控隐藏域实现checked状态切换(含代码、案例、截图)
  10. 天气预报API接口 : 城市对应码(中国天气网)