栈的压入,弹出序列
来源:互联网 发布:数据库的物理结构 编辑:程序博客网 时间:2024/06/05 06:59
题目描述
:
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
解题思路:
1.新建栈stack,将序列压入栈
2.将栈顶端的数字与序列相比,如果相同,则出栈。不相同,则不出栈
3.当栈为null时,证明第二个序列是该栈的弹出顺序
实际操作:
public boolean IsPopOrder(int [] pushA,int [] popA) { //特殊情况 if (pushA==null || popA==null) return false; Stack<Integer> stack = new Stack<>(); int j = 0; for (int i = 0; i < pushA.length; i++) { //将第一个序列的元素压入栈 stack.push(pushA[i]); //比较栈顶端的元素是否和第二个序列的元素相同 while (!stack.empty() && stack.peek() == popA[j]) { //出栈 stack.pop(); j++; } } //判断栈是否为空,并返回true or false return stack.isEmpty(); }
0 0
- 1366栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- Q22:栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入和弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- R.id.tabcontent报错的一些问题
- Fortran中常用函数列表
- spring 结合 Redis 例子,简单入门例子
- A
- hdu 4183 Pahom on Water(最大流)
- 栈的压入,弹出序列
- android 按两次返回键强制退出整个APP
- 关于UITextField切换系统键盘和InputView的卡顿的问题
- FFmpeg中的通用知识(一) -- 表达式(Expression Evaluation)
- 01背包几题
- mysql(5.7.13)修改密码--学习系列002
- android:ellipsize实现跑马灯效果
- 获取可执行文件的绝对路径
- 宏定义中的do{...}while(0)