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

栈的压入、弹出序列

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

这题使用模拟法,也就是我们脑子咋分辨是否能够作为弹出序列的?
就是看看照着弹出序列能不能弹完,其实我觉得不管是有没有重复值这种模拟的方法都能正确的,比如下面这种,老实说其实不在意到底哪个4先弹出来。
1 4 2 3 5 4
4 5 3 2 4 1

import java.util.*;

public class Solution {
    public boolean IsPopOrder(int [] pushA,int [] popA) {
        Stack<Integer> stack = new Stack<>();
        int b = 0;
        for(int a:pushA){
            stack.push(a);
            while(!stack.isEmpty()&&stack.peek()==popA[b]){
                stack.pop();
                b++;
            }
        }
        return stack.isEmpty();
    }
}
全部评论

相关推荐

炫哥_:哥们项目描述里面vector和mysql之类的都要写吗,直接开头技术栈巴拉巴拉就行了,完全不是技术点啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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