栈的压入、弹出序列

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

 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     def IsPopOrder(self, pushV, popV):
 4         n = len(pushV)
 5         stack = []
 6         popout = [0] * n
 7         preidx = 0
 8         for i in range(len(pushV)):
 9             cur = popV[i]
10             if pushV.count(cur) > 0:
11                 idx = pushV.index(cur)
12                 if idx >= preidx:
13                     for j in range(preidx,idx):
14                         if popout[j] == 1:
15                             continue
16                         else:
17                             stack.append(pushV[j])
18                 else:
19                     top = stack.pop(-1)
20                     if top != cur:
21                         return False
22                 popout[idx] = 1
23                 preidx = idx
24             else:
25                 return False
26         return True
27         # write code here

转载于:https://www.cnblogs.com/asenyang/p/11013883.html

剑指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,1是该压栈 ...

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

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

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

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

  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. 在Android中使用Handler和Thread线程执行后台操作
  2. java 通配符 日期_java – 使用带有通配符支持的SimpleDateFormat解析日期字符串(例如* yyyy * MM * dd * hh * mm * ss)...
  3. 【机器学习】关联规则代码练习
  4. 计算机桌面设计总结及体会,计算机基础学习心得
  5. [译]Go语言常用文件操作汇总
  6. 人人视频从 App Store 下架整改,并下线“快看”相关内容,网友:我追的剧怎么办?...
  7. Windows 会有开源的一天吗?
  8. java图片像素90翻转_java后台解决上传图片翻转90的问题,有demo,经过测试可用...
  9. mac无法验证您网络上的打印机,怎么解决?
  10. php后缀名隐藏,php怎样隐藏后缀名
  11. 【JavaWeb】石家庄地铁搭乘系统——第二版
  12. 新加坡国际学校IB课程体系
  13. cas5.3.2单点登录-配置记住我(十六)
  14. OD使用经验【转载】
  15. 一墙之隔-看向世界和直面速度与激情
  16. 百度统计的JS脚本原理分析 2013年文章转载
  17. 一张图慢慢转换成下一张图_给一张照片做一个视频 如何把一张图片制作成几分钟的视频|图片做成视频软件...
  18. 小新pro13睡眠后无法唤醒_小新air12、air13、air13pro睡眠后无法唤醒的调试方法
  19. python读取pdf内容转word_【python】python实现PDF转word
  20. JavaScript利用回调函数完成次序循环打印“红黄绿”灯

热门文章

  1. 16、canvas性能优化建议
  2. 《Kali Linux 渗透测试技术详解》笔记之 metasploit 学习纪要
  3. 关于Vmware workstation虚拟机的网络设置问题
  4. 美工一流的个人网站源码系列(2),不漂亮你可以不下载!
  5. Flask的session使用
  6. 关于ReetrantLock
  7. Android Studio下jni应用
  8. 结合源码看nginx-1.4.0之nginx内存管理详解
  9. 如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap?
  10. Kali Linux2使用基础