剑指Offer:栈的压入、弹出序列(JAVA)
2016-02-23 11:58
429 查看
题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。import java.util.ArrayList; import java.util.Stack; public class Solution { Stack<Integer> stack = new Stack<>(); public boolean IsPopOrder(int [] pushA,int [] popA) { if(pushA == null || popA == null || pushA.length == 0 || popA.length == 0){ return false; } int index = 1; stack.push(pushA[0]); for(int i=0;i<popA.length;i++){ int popNum = popA[i]; while(popNum != stack.peek()){ if(index < pushA.length){ stack.push(pushA[index]); index ++; }else{ break; } } if(popNum == stack.peek()){ stack.pop(); }else{ return false; } } if(stack.isEmpty()){ return true; }else{ return false; } } }
相关文章推荐
- javascript的数组创建及方法
- 前端Mvvm QC 设计解析
- JavaScript简单实现鼠标移动切换图片的方法
- gulp 在 angular 项目中的使用
- js判断是否是闰年
- jQuery实现返回顶部功能
- JavaScript函数补完:toString()
- JSON中get()和opt()的区别
- JavaScript添加随滚动条滚动窗体的方法
- 理解javascript定时器中的单线程
- 如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
- react-native start 的时候出现TransformError
- jquery基础
- jQuery .bind() .live() .delegate() .on() .off() 方法不同与联系
- Javascript调用C#后台方法及JSon解析
- css快捷方式
- 教你如何终止JQUERY的$.AJAX请求
- jquery中的替换符合条件的字符串
- jsoup是如何选择指定元素的
- CSS,CSS3选择器总结