HDU1004-让气球上升
问题描述
再次比赛时间!看到气球在四周漂浮,有多兴奋。但是告诉你一个秘密,评委最喜欢的时间是猜测最流行的问题。比赛结束后,他们会统计每种颜色的气球并找出结果。
今年,他们决定离开这个可爱的工作给你。
今年,他们决定离开这个可爱的工作给你。
输入
输入包含多个测试用例。每个测试用例以数字N(0 <N <= 1000)开始 - 分布的气球总数。接下来的N行包含一个颜色。气球的颜色是最多15个小写字母的字符串。
N = 0的测试用例终止输入,这个测试用例不被处理。
N = 0的测试用例终止输入,这个测试用例不被处理。
输出
对于每种情况,请在单行上打印最常见问题的气球颜色。确保每个测试用例都有独特的解决方案。
挺简单的一道题,只要把气球放整齐,然后记录下最多的气球是哪个颜色就好。AC代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner map = new Scanner(System.in);
while (true){
int n = map.nextInt();
int max = 0;
String maxstr = "";
if (n == 0){ //条件退出
break;
}
String [] color = new String[n];
for (int i = 0; i < n ;i++){
color[i] = map.next();
}
//将输入的色彩排列整齐
Arrays.sort(color);
int temp = 0;
if (n == 1)//如果只输入了一个颜色,那就输出这个颜色
System.out.println(color[0]);
else {
for (int i = 0; i < n - 1; i++) {
if (color[i + 1].equals(color[i])) { //记录颜色相同的气球的个数
temp++;
if (temp > max) { //记录最大值对应的颜色
max = temp;
maxstr = color[i];
}
} else
temp = 0; //计数器归零
}
System.out.println(maxstr); // AC
}
}
}
}