题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

import java.util.*;

public class Solution {
    public boolean IsPopOrder(int [] pushA,int [] popA) {
        if(pushA.length == 0 || popA.length == 0 || pushA.length != popA.length)return false;
        Stack<Integer> help = new Stack<Integer>();
        int j = 0;//一开始就要初始化内循环的循环变量,后面要先用
        for(int i = 0;i < pushA.length;i++){
            help.push(pushA[i]);
            while(!help.isEmpty() && help.peek() == popA[j]){
                //这里注意逻辑的先后顺序,先保证辅助栈不为空在执行peek操作
                help.pop();//执行辅助栈的弹栈
                j++;//并且让j加一
            }
        }
        return help.isEmpty();
    }
}
全部评论

相关推荐

12-27 22:14
门头沟学院 Java
点赞 评论 收藏
分享
11-28 13:56
已编辑
门头沟学院
所有好工作吻上来:最近可能压力比较大吧,面试的时候已经不屑于去说一些违心的话了,今天这场面试我真是没控制住啊,感觉我已经要发火了
实习学到最有价值的工作习...
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务