1 Star 0 Fork 0

KANLON/algorithm-demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

面试题22:栈的压入、弹出序列

题目:

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

解题思路:

解题思路1(与原书解法不一样):
(1)将入栈序列依次入栈,直到遇到要入栈的元素等于出栈序列的第一个元素。如果相等则直接跳过该元素,入栈序列和出栈序列都到下一个指针。直到入栈序列指针到最后一个元素。
(2)接着检查下一个出栈元素是否等于入栈的栈顶元素,如果等于则继续出栈,否则继续入栈,重复第一步操作。
(3)遍历完所有入栈序列后,从当前出栈序列所指下标的元素,依次和栈中元素依次出栈对比,一旦发现有不相同的,则返回false,否则返回true


马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/KANLON/algorithm-demo.git
git@gitee.com:KANLON/algorithm-demo.git
KANLON
algorithm-demo
algorithm-demo
master

搜索帮助