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