【剑指offer】面试题31:栈的压入,弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
代码:
package offer;
import java.util.Stack;
public class ti31 {
static boolean IsPopOrder(int push[],int pop[])
{
Stack<Integer> stack = new Stack<Integer>();
int x = 0;
int i = 0;
while(x<=pop.length-1)
{
if(stack.empty()&&i<push.length)
{
stack.add(push[i]);
i++;
}
while(!stack.empty()&&pop[x]==stack.peek())
{
stack.pop();
x++;
}
if(!stack.empty()&&pop[x]!=stack.peek())
{
if(i<push.length)
{
stack.add(push[i]);
i++;
}
else
{
return false;
}
}
}
return true;
}
public static void main(String[] args)
{
int push[] = {1,2,3,4,5};
int pop[] = {4,5,3,2,1};
System.out.println(IsPopOrder(push,pop));
}
}
【剑指offer】面试题31:栈的压入,弹出序列相关推荐
- 【剑指offer-Java版】22栈的压入弹出序列
栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...
- 剑指offer面试题31. 栈的压入、弹出序列(链表)
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...
- 剑指offer面试题[22]-栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...
- 剑指offer(21)栈的压入、弹出序列
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该 ...
- 剑指offer-21.栈的压入弹出序列
1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...
- 数据结构与算法--举例分析法- 栈的压入弹出序列
举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...
- 剑指offer(21)栈的压入、探出序列
链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 思路:借用一个辅助的栈,遍历压栈顺序,先将第 ...
- python 栈的压入弹出序列
| 栈的压入和弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等. 例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序 ...
- 剑指offer——面试题31:连续子数组的最大和
剑指offer--面试题31:连续子数组的最大和 Solution1: 第一次做这道题.. 讲道理是这是标准的动态规划的题目,可是思路未完全想好. min_element(iterator, iter ...
- 剑指offer——面试题41:和为S的连续整数序列
剑指offer--面试题41:和为S的连续整数序列 Solution1:我的答案 基本思路是根据等差数列的前n项和推导出首项与项数的关系,设首项为a1a1a_1,项数为kkk,和为S" ro ...
最新文章
- [CLR via C#]25. 线程基础
- mysql map 键值对获取_mysql map_get function,用于解析map结构数据,根据key返回相对应value...
- 看完这个你还不理解右值引用和移动构造 你就可以来咬我(中)
- mysql数据迁移到sqlserver_一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE...
- 每天一个linux命令(10):more命令
- repeater 的编辑功能
- 翻译:包含列的索引:通往SQL Server索引级别5的阶梯
- Oracle表名、列名、约束名的长度限制
- STM32单片机(一).相关的开发工具软件
- FreeImage使用
- 从pdf简历中提取信息——BiLSTM-CRF
- 《代码大全》读书笔记
- 24小时之内完成优秀营销方案策划
- java-commen判断一个数据是否存在于列表中
- Kafka SSL 和 ACL 配置
- 动态规划——背包问题九解(01背包)
- LED阵列PCB灯板绘制
- 量化投资学习——股指期货理论价格说明
- C语言基础--编写风格1
- 乐高ev3搭建图纸大全_乐高拼装步骤图纸制作软件分享
热门文章
- LeetCode 1207. 独一无二的出现次数
- LeetCode 42. 接雨水(双指针、单调栈)
- db文件怎么修改_MongoDB最新4.2.7版本三分片集群修改IP实操演练
- Python中字符串格式化:%和format
- 别再龟速炼丹了!聊聊怎样科学提升训练效率
- 论文浅尝 - ACL2020 | 用于回答知识库中的多跳复杂问题的查询图生成方法
- 技术论坛 | CCF YOCSEF上海即将在 CNCC 举办“知识图谱遇见社交媒体”专题论坛
- 标签生成-基于标签的的推荐系统
- 对话中情绪识别,研究挑战、数据集和前沿方法
- 记录对String.format(Formatter().format())方法的总结