转载声明:原文转自http://www.cnblogs.com/xiezie/p/5502876.html
JAVA语言实现:
拿到题目第一反应是用HashMap实现,但是感觉用HashMap实在太浪费了,而且必须用Integer或者String等对象作为value值。
如果用ArrayList实现的话(当然直接用String数组也行),其实简单快捷,用到的int数组其实只是作为一个类似简单hash里的思路。
代码如下:
import java.util.*; import java.io.*; public class Main{ public static void main(String[] arg){
Scanner scan = new Scanner(new BufferedInputStream(System.in));
ArrayList<String> list = new ArrayList<>();
while(scan.hasNextInt()){
int n = scan.nextInt();
if(n==0){
break;
}
list.clear();
int[] a = new int[1000];
while(n--!=0){
String s = scan.next();
if(!list.contains(s)){
list.add(s);
}
a[list.indexOf(s)]++;
}
int max= 0;
for(int i = 1 ; i != 1000 ; i ++ ){
if(a[i]==0){
break;
}
if(a[i]>a[max]){
max = i;
}
}
System.out.println(list.get(max));
}
scan.close();
}
}