Java程序之让气球上升

问题:

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

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

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

样例输入:

复制代码
5
green
red
blue
red
red
3
pink
orange
pink
0

样例输出:

复制代码
red
pink
源代码:
java 复制代码
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(); // 读取用户输入的整数n
            if(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数组,输出最多出现的颜色。

运行结果:
相关推荐
vipxieliang11 分钟前
ValidX错误消息国际化完全指南:8种语言9个语言包与三级回退机制
java·spring boot
xbgRS17 分钟前
RocketMQ消费者消息获取
java·rocketmq·java-rocketmq
云和数据.ChenGuang23 分钟前
git revert回退问题
java·服务器·人工智能·git·fastapi·强化学习
lhldsg42 分钟前
AI智能商城实战指南:从架构设计到落地开发经验分享
java·人工智能·经验分享·小程序
lhldsg1 小时前
树洞交友系统开发实战:从匿名社交需求到技术落地
java·小程序·uni-app·交友
数智启示录1 小时前
实时数据湖 Flink CDC + Kafka +Doris 【企业级实战】之Kafka 事件缓冲层 【附核心源码】 04
java·大数据·flink·kafka·数据库开发
AI人工智能+电脑小能手1 小时前
大白话说Java设计模式-41-备忘录模式(源码剖析篇)
java·设计模式·备忘录模式·源码分析·serializable·undo log·spring statemachine
lv__pf1 小时前
Sentinel【TL微服务10、11】
java·微服务·sentinel
Escalating_xu1 小时前
【C++ string 上篇】从字符串基础到容量管理、迭代器与经典算法题
java·c++·算法
曹牧2 小时前
Java:Java 数组转 List
java·开发语言·windows