栈的压入、弹出序列
来源:互联网 发布:寻侠九宫突破数据 编辑:程序博客网 时间:2024/06/05 16:43
题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设
压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹
出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
思路:建立一个辅助栈,依次将压入序列压入栈内,并且判断当前栈顶元素是否等于弹出序列的元素,如果等于
则将元素弹出,并将弹出序列的指针指向下一个。如果已经将压入序列的元素全部都压入栈内,判断当前栈是否
为空,如果为空返回true,如果不为空则返回false。
public static boolean IsPopOrder(int [] pushA,int [] popA) { boolean result=false; if(pushA.length!=popA.length){ return false; }else if(pushA.length==0){ return false; } Stack<Integer> stack=new Stack<Integer>(); int push=0,pop=0; while(true){ stack.push(pushA[push]); push++; while(!stack.isEmpty()&&stack.peek()==popA[pop]){ stack.pop(); pop++; } if(push>=pushA.length){ if(stack.isEmpty()){ result=true; } break; } } return result; }
0 0
- 1366栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- Q22:栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入弹出序列
- 栈的压入、弹出序列
- 栈的压入和弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- 栈的压入、弹出序列
- WebView学习
- 使用Httpclient框架提交数据-get
- vector
- Android之fragment的基本使用
- Android中的数据储存
- 栈的压入、弹出序列
- 加密算法逆向
- C++程序变量在内存中的分配问题
- 【Oracle】7.由B-Tree算法谈Oracle的索引
- java并发编程(6)--synchronized
- HDOJ 5677 ztr loves substring(Manacher+背包型DP)
- 二路归并排序
- 设计模式之单例模式
- SCTP关联终止和TCP四次挥手