栈的压入弹出序列
来源:互联网 发布:java判断date是否相等 编辑:程序博客网 时间:2024/06/07 03:12
题目描述
题目解析
题目中要求一个序列是不是另一个序列出栈的诸多顺序中的一种,我一开始想法是先找规律,看看是不是这个顺序是不是有些固定的逻辑可以用于判断违反了规则而直接返回false的情况,但是很遗憾,没有并没有找到一个通过串的顺序来判断的规律,可能是有的,只是我在短时间内无法发现而已。
解题思路
这个题目可以直接采用辅助的一个栈的结构来暂时存储数据,模拟栈的出栈操作,如果说栈顶和出栈的这个串的当前索引下的数据是一致的那么将已经入栈的数据出栈,如果不一样的话,就不断的入栈,直到所有数据都入栈,这个时候的数据要么栈数据已经为空了,要么就是栈中没有空,没有空的话,就开始出栈,并且把栈顶的数据和出栈序列的对应的索引的数据进行比对,如果一致那就继续出栈,出栈序列的索引指向下一个元素。一直到栈为空都不存在不一样的数据的话,那么就说明该序列是对的,否则直接返回false。
代码实现
附录
另外的一种实现
这种实现的思路主要是,尽可能在遍历完成一遍以后将整个串已经匹配完,如果未匹配完的话就说明这个串是错误的出栈顺序,遍历过程中通过while循环的方式不断的判断是不是存在匹配的子串,存在就将该子串出栈,直到结束。
阅读全文
0 0
- 1366栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- Q22:栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入和弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- Swift
- HDU
- 静态ip设置
- Android应用push到/system/app/后so库不能加载
- CodeChef FEB14 COT5
- 栈的压入弹出序列
- Thinking in java-随纪
- Swift
- P1823 音乐会的等待
- leetcode algorithm3 Substring Without Repeating Characters
- 协同过滤推荐算法(mark)
- 十进制转任意进制(函数递归)
- 《来自远方的心灵鸡汤_来来来,喝了这碗~还有三碗》
- Ubuntu 14.04安装w3c-libwww开发包