面试31题:

题目:栈的压入、弹出元素

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

解题思路:链接

解题代码:

# -*- coding:utf-8 -*-
class Solution:
def IsPopOrder(self, pushV, popV):
# write code here
stack=[]
while popV:
#相当于元素进栈后立即出栈
if pushV and pushV[0]==popV[0]:
pushV.pop(0)
popV.pop(0)
#如果当前辅助栈中的栈顶元素刚好是要弹出的元素,那么直接弹出
elif stack and stack[-1]==popV[0]:
stack.pop()
popV.pop(0)
#不断往辅助栈中压入元素
elif pushV:
stack.append(pushV.pop(0))
else:
return False
return True

最新文章

  1. 开始研究unreal4了
  2. DSET收集ESXi硬件日志
  3. POJ1651Multiplication Puzzle[区间DP]
  4. 《CSS3实战》读书笔记 第4章:样式继承
  5. (MST) HDOJ 1102 Constructing Roads
  6. SQL基础分类
  7. mysql输入密码后闪退怎么办?
  8. PHP 设计模式 笔记与总结(9)数据对象映射模式
  9. CentOS 6.3配置PPTP VPN的方法
  10. MVC View中获取Url参数的值
  11. TextBox控件
  12. 【java】HashSet
  13. C#的扩展方法简介
  14. Microsoft CRM-QueryExpression 成员
  15. MarkdownPad
  16. Sass和less的区别是什么?用哪个好
  17. 图数据库项目DGraph的前世今生
  18. 2018-2019-2 20165205 《网络对抗技术》 Exp6 信息收集与漏洞扫描
  19. ERP & CRM
  20. nginx防止DDOS攻击配置

热门文章

  1. 给 JavaScript 开发者讲讲函数式编程
  2. UML类图详解_泛化关系
  3. linux学习之缓存机制
  4. java继承机制
  5. WebAssembly,Web的新时代
  6. Idea 2017的激活方式
  7. 18 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果
  8. Snowflake Snow Snowflakes - poj 3349 (hash函数)
  9. 第一百八十六节,jQuery,验证表单插件,Ajax 表单插件,验证和提交表单
  10. windows中控制台窗口和普通窗口有什么区别?