首页 > 编程语言 >卡码java基础课 | 18.洗盘子

卡码java基础课 | 18.洗盘子

时间:2024-03-25 17:55:53浏览次数:26  
标签:卡码 java int 18 栈顶 nextInt sc 空栈

学习内容:
栈的基本概念(空栈、栈顶、栈底)和特点(先入后出)
入栈、出栈、获取栈顶元素和判断栈是否为空栈等基本操作
Stack类的使用

重点归纳:
栈:后进先出,LIFO,last in first out。
使用方法:import java.util.Stack。
常用方法:
isEmpty(): 判断栈是否为空栈,如果为空栈返回true, 否则或者false。
push(): 进栈操作,将新的元素放入到栈中,新的元素成为栈顶元素。
pop(): 出栈操作,栈顶元素从栈中离开, 并且返回栈顶元素。
peek(): 获取栈顶元素,但是不会移除它。
size(): 获取栈的长度,即栈中元素的数量。
易错点提示:
要出栈操作的的时候必须判断是否空栈,否则会出错
if(s.isEmpty() == false){
s.pop();
}

例题:


解:

点击查看代码
import java.util.Stack;
import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        Stack<Integer> s = new Stack<>();
        
        int n = sc.nextInt();
        for(int i = 0; i < n; i++){
            int num = sc.nextInt();
            s.push(num);
        }
        int m = sc.nextInt();
        for(int j = 0; j < m; j++){
            int operation = sc.nextInt();
            if(operation == 1){
                //要出栈的时候必须判断是否空栈,否则会出错
                if(s.isEmpty() == false){
                    s.pop();    
                }
            }
            else{
                int num = sc.nextInt();
                s.push(num);
            }
        }
        
        if(s.isEmpty()){
            System.out.println("All the dishes have been washed.");
        }
        else{
            System.out.println(s.peek());
        }
        
        sc.close();
    }
}

标签:卡码,java,int,18,栈顶,nextInt,sc,空栈
From: https://www.cnblogs.com/cyh-coding/p/18094965

相关文章

  • java实现Array
    publicclassMyArray{privateint[]array;privateintsize;publicMyArray(intcapacity){this.array=newint[capacity];size=0;}publicvoidinsert(intelement,intindex)throwsException{//判断访问下标是否超出......
  • 【附源码】JAVA计算机毕业设计应聘小程序(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的快速发展,互联网已经深入到人们生活的方方面面,特别是在求职招聘领域,传统的线下招聘方式已经无法满足现代社会的需求。目前,企业招聘和求......
  • 【附源码】JAVA计算机毕业设计应急信息管理及统计分析系统(springboot+mysql+开题+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化时代,应急管理面临着前所未有的挑战和机遇。随着自然灾害、事故灾难等突发事件频发,对应急信息的管理和统计分析提出了更高要求。传统的信息管......
  • 【附源码】JAVA计算机毕业设计应急物资管理系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着自然灾害和突发事件的频发,应急物资管理的重要性日益凸显。传统的物资管理方式往往存在着信息不透明、响应速度慢、资源分配不均等问题,难以满足现......
  • Java中String、StringBuffer、StringBuilder 的区别
    目录1.String2.StringBuffer3.StringBuilder4.使用情况如果帮助到你,别忘了点赞收藏关注String、StringBuffer和StringBuilder在Java中都用于处理字符串数据,但它们之间在功能和性能上有一些关键的区别:1.String不可变性:String类的对象是不可变的。每次对String对......
  • Java并发面试题(一)
    1.并行和并发有什么区别?并行(Parallelism)和并发(Concurrency)在计算机科学中都是关于处理多个任务或操作的重要概念,但它们之间存在显著的差异。以下是并行和并发的主要区别:并发(Concurrency):任务交错执行:并发指的是两个或多个任务在同一时间段内开始,但它们的执行是交错进行的......
  • JAVA 使用POI实现单元格行合并
    POI实现单元格行合并实现效果引入jar代码实现controller层Service层ServiceImpl层实现类实现效果如果最后面的三行数据大于1时那么前面十二行就需要行合并引入jar<dependency><groupId>org.apache.poi</groupId><artifactId......
  • JavaScript 基础 - 第1天
     了解变量、数据类型、运算符等基础概念,能够实现数据类型的转换,结合四则运算体会如何编程。体会现实世界中的事物与计算机的关系理解什么是数据并知道数据的分类理解变量存储数据的“容器”掌握常见运算符的使用,了解优先级关系知道JavaScript数据类型隐式转......
  • 基于java中的springboot框架实现学生宿舍管理系统的设计与开发演示【附项目源码+论文
    基于springboot实现学生宿舍管理系统的设计与开发演示摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对学生宿舍信息管理混乱,出错率高,信息安全性差,劳动强......
  • 基于java中的SpringBoot框架实现企业客户管理系统演示【附项目源码+论文说明】
    基于SpringBoot实现企业客户管理系统演示摘要本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企业客户管理系统的当前背景以及系统开发的目的,后......