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


输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {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 之前弹出。

提示:
0 <= pushed.length == popped.length <= 1000
0 <= pushed[i], popped[i] < 1000
pushed 是 popped 的排列。


classSolution {public boolean validateStackSequences(int[] pushed, int[] popped) {Stack<Integer> s = new Stack<>();int len1 = pushed.length, len2 = popped.length;if(len1 == 0) return true;                          // 鲁棒性int i = 0, j = 0;while(i < len1) {s.push(pushed[i]);while(!s.isEmpty() && s.peek() == popped[j]) {s.pop();j++;}i++;}return (j == len2 ? true : false);}
}

剑指 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. 栈的压入、弹出序列 【重刷】

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

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

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

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

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

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

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

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

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

最新文章

  1. 实现网页中按钮刷新的N种方法
  2. java一定时间间隔的定时任务_Java 定时任务---Timer
  3. [BZOJ 3238] [AHOI 2013] 差异 【后缀数组 + 单调栈】
  4. oracle中获取年份、月份段内的时间
  5. 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
  6. WinForm中的各种对话框
  7. ps aux grep java_linux命令ps-aux监控java进程
  8. 图标截取——背景偏移量技术
  9. Java 算法训练 一元三次方程求解
  10. asp mysql 设置编码_ASP对数据库各种操作的代码
  11. SpringBoot读取外部配置文件的方法
  12. 2019年成都房产新政,有这些内容需注意
  13. 好用的医药管理软件都有哪些特点
  14. coherence mysql_Coherence Step by Step 第三篇 缓存(四) 缓存数据源(翻译)
  15. Silvaco TCAD仿真3——DeckBuild
  16. Julia之初体验(九)字符串连接与匹配
  17. 我想深入学习Go语言
  18. 基带传输与频带传输(关系与区别)
  19. 这个程序员为了买股票,直接分析了上市公司财报,还把代码开源了
  20. 使用正则表达式批量替换掉 空格及换行符

热门文章

  1. 深入理解C++内存管理
  2. Soul网关发布2.1.X之后,它到底有多方便?
  3. MySQL主从复制虽好,能完美解决数据库单点问题吗?
  4. 新的Google Lyra音频编解码器对实时视频流意味着什么?
  5. 收官蓉城,展望2019多媒体技术新方向(内附资料下载)
  6. 腾讯推出百万现金漏洞悬赏计划!
  7. 腾讯技术直播间 | 零代码打造智能对话机器人
  8. 2018中国C++大会精彩回顾
  9. FFmpeg源代码:avcodec_send_packet
  10. nginx的请求接收流程(二)