当前位置: 首页 > news >正文

Java程序之让气球上升

问题:

        ACM比赛时间再次举行!看到气球四处漂浮是多么的兴奋啊。但要告诉你一个秘密,评委们最喜欢的时间是猜测最流行的问题。比赛结束后,他们会数出每种颜色的气球,然后找到结果。今年,他们决定把这份可爱的工作留给你。

        输入:输入包含多个测试用例。每个测试用例的开头都有一个数字N(0 < N <= 1000)——分布的气球总数。接下来的N行分别包含一种颜色。气球的颜色是由多达15个小写字母组成的一串。带有N = 0的测试用例终止输入,并且不处理此测试用例。

        输出:对于每种情况,在一行上打印最流行问题的气球的颜色。保证对每个测试用例都有一个唯一的解决方案。

样例输入:

5
green
red
blue
red
red
3
pink
orange
pink
0

样例输出:

red
pink
源代码:
import java.util.Scanner; // 导入Scanner类,用于接收用户输入public class BalloonRise { // 定义一个名为BalloonRise的公共类public static void main(String[] args) { // 主方法Scanner scanner=new Scanner(System.in); // 创建一个Scanner对象,用于接收用户输入String[] MaxColor=new String[1000]; // 定义一个字符串数组MaxColor,用于存储最多出现的颜色int maxColorNum=0; // 定义一个整型变量maxColorNum,用于记录最多颜色的数量while (true) // 无限循环,直到遇到break跳出循环{int n = scanner.nextInt(); // 读取用户输入的整数nif(n==0) // 如果n为0,则跳出循环{break;}String[] InputColor=new String[1000]; // 定义一个字符串数组InputColor,用于存储输入的颜色for(int i=0;i<n;i++) // 循环n次,读取用户输入的颜色{InputColor[i]= scanner.next(); // 将用户输入的颜色存入InputColor数组}int max=0; // 定义一个整型变量max,用于记录当前最多出现的颜色数量for(int i=0;i<n;i++) // 循环n次,遍历InputColor数组{int count=0; // 定义一个整型变量count,用于记录当前颜色出现的次数for(int j=i+1;j<n;j++) // 循环n-i次,从i+1开始遍历InputColor数组{if(InputColor[i].equals(InputColor[j])) // 如果当前颜色与InputColor[j]相同{count++; // 计数器加1}}if(max<count)//只有一种最多{max=count; // 更新最大颜色数量MaxColor[maxColorNum]=InputColor[i]; // 将当前颜色存入MaxColor数组maxColorNum++; // 更新最多颜色数量}else if(max==count)//最多的颜色数存在一样多的{MaxColor[maxColorNum]=InputColor[i]; // 将当前颜色存入MaxColor数组if(max!=0) {maxColorNum++; // 更新最多颜色数量}}}}for(int i=0;i<maxColorNum;i++) // 循环maxColorNum次,输出最多出现的颜色{System.out.println(MaxColor[i]); // 输出MaxColor数组中的元素}}
}
算法思路如下:

1. 首先,我们需要接收用户输入的整数n,表示有n个气球。如果n为0,则跳出循环。
2. 然后,我们需要创建一个长度为1000的字符串数组InputColor,用于存储用户输入的气球颜色。
3. 接下来,我们需要遍历InputColor数组,统计每种颜色出现的次数。
4. 在统计过程中,我们需要记录当前最多出现的颜色数量max和对应的颜色。
5. 如果遇到一种新的颜色,其出现次数大于max,则更新max,并将该颜色存入MaxColor数组。
6. 如果遇到一种新的颜色,其出现次数等于max,也将其存入MaxColor数组。
7. 最后,遍历MaxColor数组,输出最多出现的颜色。

运行结果:

 

相关文章:

  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
  • git配置ssh key
  • tensorRT C++使用pt转engine模型进行推理
  • express+vue 在线五子棋(一)
  • 使用Vue开发页面(前置知识)
  • npm全局安装依赖指定存放文件目录
  • 电子电气架构——由NRC优先级引起的反思
  • 华为appgallery上架
  • 借助AI快速提高英语听力:如何获得适合自己的听力材料?
  • Python爬虫介绍
  • 2024 年值得推荐的 10 款 iPhone 数据恢复软件
  • Less与Sass的区别
  • Mac数据如何恢复?3 款最佳 Mac 恢复软件
  • 汽车网络安全 -- 漏洞该如何管理
  • 面试题2:从浏览器输入一个URL,到最终展示前端页面这一过程,会发生什么?
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Akka系列(七):Actor持久化之Akka persistence
  • Apache的基本使用
  • JavaScript新鲜事·第5期
  • JS+CSS实现数字滚动
  • js操作时间(持续更新)
  • Mysql数据库的条件查询语句
  • node和express搭建代理服务器(源码)
  • 解析带emoji和链接的聊天系统消息
  • 前端面试总结(at, md)
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • Prometheus VS InfluxDB
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (含答案)C++笔试题你可以答对多少?
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)菜鸟学数据库(三)——存储过程
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net core 6 redis操作类
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net dataexcel winform控件 更新 日志
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET框架
  • .Net中的集合
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @Value读取properties中文乱码解决方案
  • [<死锁专题>]
  • [1204 寻找子串位置] 解题报告
  • [145] 二叉树的后序遍历 js
  • [20161214]如何确定dbid.txt
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [APIO2015]巴厘岛的雕塑
  • [BZOJ 1040] 骑士
  • [c]统计数字
  • [C++][opencv]基于opencv实现photoshop算法色阶调整
  • [ES-5.6.12] x-pack ssl