杭电OJ 1004题 题目链接:点击打开链接
本题思路:使用Map<String,Integer>来保存数据,遍历数据集找到出现次数最多的颜色,输出对应的颜色。
本题AC参考代码如下:
import java.io.BufferedInputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(new BufferedInputStream(System.in));
int count = cin.nextInt();
//使用Map,其中key为各种颜色,value为该颜色出现的次数
Map<String,Integer> balloon = new HashMap<String,Integer>();
while(count != 0){
for(int i=0; i<count; i++){
String color = cin.next();
if(balloon.containsKey(color)){
int newNum = balloon.get(color)+1;
balloon.put(color, newNum);
} else {
balloon.put(color, 1);
}
}
//使用迭代器遍历map,寻找出现次数最多的颜色
Iterator<Entry<String, Integer>> it = balloon.entrySet().iterator();
int max = 0;
String resultColor = "";
while(it.hasNext()){
Map.Entry<String, Integer> entry = it.next();
int num = entry.getValue();
if(num > max){
resultColor = entry.getKey();
max = num;
}
}
System.out.println(resultColor);
balloon.clear();
count = cin.nextInt();
}
cin.close();
}
}
欢迎评论指正讨论,不喜勿喷。