题解 | #【模板】栈#

【模板】栈

http://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf

Java语言 采用数组实现 粗略注释


import java.util.*;

public class Main {
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.valueOf(scanner.nextLine());
        MyStack stk = new MyStack(n);
        // 循环读取操作
        while(n-- > 0) {
            String[] cmd = scanner.nextLine().split(" ");
            if("push".equals(cmd[0])) {
                int num = Integer.valueOf(cmd[1]);
                stk.push(num);
            }else if("top".equals(cmd[0])) {
                // 根据栈是否为空来输出“error”
                if(stk.isEmpty()) {
                   System.out.println("error"); 
                }else {
                    System.out.println(stk.top());
                }
            }else if("pop".equals(cmd[0])) {
                if(stk.isEmpty()) {
                   System.out.println("error"); 
                }else {
                    System.out.println(stk.pop());
                }
            }
        }
    }
}

class MyStack {
    
    // 存放数据
    private int[] nums;
    // 栈顶指针,指向栈顶元素的上面一格
    private int top;
    
    public MyStack() {
        nums = new int[100000];
        top = 0;
    }
    
    public MyStack(int n) {
        nums = new int[n];
        top = 0;
    }
    
    public void push(int num) {
        nums[top++] = num;
    }
    
    public int pop() {
        if(top < 1) {
            return -1;
        }
        int res = nums[--top];
        return res;
    }
    
    public int top() {
        if(top == 0) {
            return -1;
        }
        return nums[top-1];
    }
    
    public boolean isEmpty() {
        return top < 1;
    }
}
全部评论

相关推荐

之前自己不懂事,投了字节,基本是自己第一次面试,一面就挂了
观水:前几天有个学化学的做前端,加上实习面了22次字节最后成功了
点赞 评论 收藏
分享
01-12 17:45
门头沟学院 Java
叁六玖:这样的应该钱不多,以前我也被问,我在问他们实习公工资多少,一般都是2200-2800
找实习记录
点赞 评论 收藏
分享
01-14 10:23
已编辑
湖南师范大学 计调
太久没更新,前几天看到一条评论,说“牛客就是当年那群做题区毕业了开始找工作还收不住那股味”的群体。字里行间透着居高临下的评判,不是,他该不会以为自己很幽默?很犀利吧?作为在牛客混了不算短日子的用户,我感到的不只是被冒犯,更是一种深刻的悲哀——这种以“松弛感”为名,对另一种生存策略的轻蔑,颇有一种自己考不上大学早早出来混社会,嘲笑考上大学的人是书呆子,然后大言不惭地说:死读书有什么用,人脉和资源才是硬道理。我不知道说这个话的人,手头究竟握着多少真正管用的人脉与资源,也不知道他这么傲慢地说出“那股味”的时候,是站在哪一个巨人的肩膀上,才能如此“松弛从容”地俯视众生,还能品评出别人身上“没收住”的余...
淬月星辉:这种评论把正常的努力扭曲成卷😂,说白了就是自己不努力,看着身边努力的人一个个都事业有成了,自己的心里开始不平衡了,就发这种酸言酸语。牛客可以说是我用过那么多平台里社区氛围最好的论坛了,用了大半年了,基本上没见过有人吵架的,都是在互帮互助提建议,帮忙看简历的,帮忙选offer的,帮忙指点学习路线的,分享工作经验和趣事的,我觉得这才是互联网该有的样子。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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