题目:

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

知识点:

注意:

代码实现:

引入辅助栈,按压入顺序一个一个压入辅助栈,压入一个值就与弹出序列比对一次,看有没有符合要求的,符合要求就从从辅助栈弹出,循环再压入弹出,至遍历完压入栈,最后看辅助栈是否为空来判断可否实现 。

/*栈的压入、弹出序列*/
bool IsPopOrder(vector<int> pushV, vector<int> popV) {//特殊情况或边界if (pushV.size() == 0)return false;//定义一个辅助stackvector<int> stack;//将压入的顺序赋值给辅助栈,同时判断是否可以按弹出顺序输出for (int i = 0, j=0; i < pushV.size(); i++)//i:压入序列,j:弹出序列{//压入一个值就判断一次stack.push_back(pushV[i++]);//当栈顶的值与弹出值序列一样时,弹出while (j < popV.size() && popV[j] == stack.back()){stack.pop_back();j++;}}return stack.empty();
}

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

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

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

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

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

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

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

  4. 剑指offer-21.栈的压入弹出序列

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

  5. 数据结构与算法--举例分析法- 栈的压入弹出序列

    举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...

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

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

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

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

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

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

  9. python 栈的压入弹出序列

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

最新文章

  1. Linux之父盟友分道扬镳 直言开源模式软肋
  2. 【JavaWeb】Access restriction The type is not accessible due to restriction on required library
  3. 最简易的JQUERY折叠菜单 有预览效果
  4. 厦门诺宝机器人_诺宝机器人编程软件
  5. 关于代码评审的微博讨论汇集
  6. Java加密与解密的艺术~RSA实现
  7. 厉害了 | 一秒切换Hexo中英文,厉害了!!
  8. 雷军回应小米新 Logo 争议;马化腾排名第 15 位,2021 全球亿万富豪榜出炉!谷歌将停止使用甲骨文的财务软件|极客头条...
  9. 学习进度(2016.4.10)
  10. 20145305 《网络对抗》注入Shellcode并执行Return-to-libc 攻击实验
  11. Ubuntu安装sqlmap
  12. 基于Springboot+Mybatisplus的学校学院门户学生就业指导管理系统
  13. 路由器上下行测试软件,无线传输性能测试平台和测试方法
  14. mysql 定时任务 日志_mysql定时备份任务
  15. cesium接入天地图影像与注记(经纬度)(cesium篇.70)
  16. 黑马程序员--安卓22期毕业19天就业50人平均薪资8261
  17. Android实现新浪微博和QQ登陆并获取用户的信息
  18. 2048游戏python源代码_python pygame实现2048游戏
  19. 【爆品】馥兰朵想买找谁?代理能月入过万吗?
  20. C语言常见问题(10):Sections of code should not be commented out

热门文章

  1. MOOS学习笔记3——命令行
  2. iOS中使用UIActivityViewController系统分享到微信QQ微博包含文字图片URL
  3. 关系型数据库知识小结
  4. java,二分查找法,网上查阅
  5. week7 read
  6. javascript学习笔记之入门
  7. 经典算法题每日演练——第二十四题 梳排序
  8. ActiveXObject
  9. 动态规划____编辑距离
  10. 我为啥要当程序员未来规划漫谈