程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ 290 動物統計加強版

NYOJ 290 動物統計加強版

編輯:C++入門知識

動物統計加強版
時間限制:3000 ms  |  內存限制:150000 KB
難度:4
描述
在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於數據太過龐大,科學家終於忍受不了,想請聰明如你的ACMer來幫忙。
輸入
第一行輸入動物名字的數量N(1<= N <= 4000000),接下來的N行輸入N個字符串表示動物的名字(字符串的長度不超過10,字符串全為小寫字母,並且只有一組測試數據)。

輸出
輸出這些動物中最多的動物的名字與數量,並用空格隔開(數據保證最多的動物不會出現兩種以上)。

樣例輸入
10
boar
pig
sheep
gazelle
sheep
sheep
alpaca
alpaca
marmot
mole sheep    

/*
 * 可以用字典樹
 * 也可以用HashMap水過
 */
import java.util.HashMap;
import java.util.Scanner;
public class Main{
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		int n=input.nextInt();
		HashMap<String,Integer> map=new HashMap<String, Integer>();
		int sum=0;
		String str="";
		while(n-->0){
			String s=input.next();
			if(map.get(s)==null){
				map.put(s, 1);
				if(sum<1){
					sum=1;
					str=s;
				}
			}
			else{
				int num=map.get(s)+1;
				map.put(s,num);
				if(sum<num){
					sum=num;
					str=s;
				}
			}
		}
		System.out.println(str+" "+sum);
	}
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved