如何判断一个序列是否为另一个序列的出栈序列
2017-11-27 10:31
495 查看
借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,很显然1≠4,所以我们继续压栈,直到相等以后开始出栈,出栈一个元素,则将出栈顺序向后移动一位,直到不相等,这样循环等压栈顺序遍历完成,如果辅助栈还不为空,说明弹出序列不是该栈的弹出顺序。
举例:
入栈1,2,3,4,5
出栈4,5,3,2,1
首先1入辅助栈,此时栈顶1≠4,继续入栈2
此时栈顶2≠4,继续入栈3
此时栈顶3≠4,继续入栈4
此时栈顶4=4,出栈4,弹出序列向后一位,此时为5,,辅助栈里面是1,2,3
此时栈顶3≠5,继续入栈5
此时栈顶5=5,出栈5,弹出序列向后一位,此时为3,,辅助栈里面是1,2,3
举例:
入栈1,2,3,4,5
出栈4,5,3,2,1
首先1入辅助栈,此时栈顶1≠4,继续入栈2
此时栈顶2≠4,继续入栈3
此时栈顶3≠4,继续入栈4
此时栈顶4=4,出栈4,弹出序列向后一位,此时为5,,辅助栈里面是1,2,3
此时栈顶3≠5,继续入栈5
此时栈顶5=5,出栈5,弹出序列向后一位,此时为3,,辅助栈里面是1,2,3
相关文章推荐
- 判断一个序列是否为另一个栈的出栈序列(栈的压入、弹出序列)
- 22-判断一个序列是否是另一个序列入栈的弹出序列
- 如何判断一个GPS点是否在以另一个GPS点为圆心100米为半径的圆内(Java代码)
- php如何判断一个字符串是否包含另一个字符串
- 《剑指offer》:[22]如何判断一个序列是否为栈的弹出序列
- php如何判断一个字符串是否包含另一个字符串
- 经典面试题:求数组的最大子序列和;实现函数 :判断一个自负喜欢是否是另一个字符串旋转所得;杨氏矩阵中查找一个数。
- 如何判断一个二叉树是否为另一个二叉树的子树
- 边看边写(判断一个序列是否为出栈序列)
- 如何判断一个时间段是否和另一个时间段冲突?
- 判断一个序列是否是另一个序列的前缀
- 判断一个序列是否为另一个序列的子序列(两种算法)
- 如何判断一个数是否为质数&得到质数序列
- 2个二叉树A、B,树的每个节点上都有一个整数值。如何判断A与B是否其中一个是另一个的子树?
- php如何判断一个字符串是否包含另一个字符串
- 判断一个序列是否是另一个给定序列的弹出序列
- 第29题:判断一个序列是否是另一个push序列的pop序列
- 如何快速判断一个整数是否可以整除另一个整数的理论分析
- 如何判断LSTM模型中的过拟合和欠拟合 By 机器之心2017年10月02日 11:09 判断长短期记忆模型在序列预测问题上是否表现良好可能是一件困难的事。也许你会得到一个不错的模型技术得分,但了解
- [VB.NET]如何在一个窗体M中判断另一个窗体N中是否存在一个名称为A的事件?