栈的压入、弹出序列

今天刷了一道剑指offer上的题目。为了2017年校招努力。

虽然第一眼看到题目一脸呆萌。看了小伙伴们的解答,自己把代码写到 eclipse里面运行了一下,当然是 单步运行的模式下咯,终于了解了题目的意思,也把程序运行出来了。自己也会写了。真开心。


题目要求:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)





public class PushPop   {

    public boolean  isPopOrder(int[] pushA,int[] popA){

          if(pushA==null||popA==null||pushA.length!=popA.length){


                               return false;       

}


 if(pushA.length<0){

               return false;

}


 ArrayList<Integer> list = new ArrayList<Integer>();

int push=0;

int pop=0;

while(pop<=popA.length-1){

       if(push<=pushA.length-1){


              list.add(pushA[push++]);


}

           else if(list.get(list.size()-1)==popA[pop]){


                          pop++;

                          list.remove(list.size()-1);


}else if(push==pushA.length){



return false;



}



}

return true;


}


}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值