HDU1004--Let the Balloon Rise 字符串/HashMap(總結)

題目鏈接
http://acm.hdu.edu.cn/showproblem.php?pid=1004
在這裏插入圖片描述
題意:找出輸入的字符序列中重複次數最多的(題目保證每一個測試案例只有一個是最多的) :
方法一(使用字符串數組)

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);

		while (in.hasNext()) {
			String[] s = new String[1001];// 存儲顏色
			int[] count = new int[1001];
			int T = in.nextInt();// 測試個數
			if (T == 0)
				break;

			for (int i = 0; i < T; i++) {// 輸入顏色
				s[i] = in.next();
			}

			for (int i = 0; i < T; i++) {// 遍歷
				for (int j = 0; j < T; j++) {
					if (s[j].equals(s[i]))
						count[i]++;
				}
			}
			int max = count[0], index = 0;
			for (int i = 0; i < count.length; i++) {
				if (count[i] > max) {
					max = count[i];
					index = i;
				}
			}
			System.out.println(s[index]);
		}
	}
}

方法二(使用HashMap)

import java.util.Scanner;
import java.util.HashMap;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		HashMap<String, Integer> mp = new HashMap<String, Integer>();
		while (in.hasNext()) {
			int T = in.nextInt();
			if (T == 0)
				break;
			String key;
			for (int i = 0; i < T; i++) {
				key = in.next();
				if (mp.containsKey(key) == false)//如果容器中不存在這個key
					mp.put(key, new Integer(1));
				else
					mp.put(key, new Integer(mp.get(key).intValue() + 1));
			}
			int max = 0;
			String ans = null;
			for (String key1 : mp.keySet()) {//遍歷HashMap
				if (mp.get(key1).intValue() > max) {
					max = mp.get(key1).intValue();
					ans = key1;
				}
			}
			System.out.println(ans);
			mp.clear();//清空容器
		}
	}
}

HashMap的使用(本題爲例):

  • 導包:import java.util.HashMap;
  • 創建:HashMap<String, Integer> mp = new
  • HashMap<String, Integer>(); 存放鍵值對:mp.put(s, new Integer(1));
  • 鍵中是否包含這個數據:mp.containsKey(s) == false;(true表示有,false表示無)。
  • 通過鍵拿值:mp.get(s).intValue();加.intValue()是表示返回int類型,若不加返回包裝類Integer。
  • 遍歷HashMap: for (String str : mp.keySet()) 其中String類型的str相當於int類型的變量i。
  • 清空容器:mp.clear(); 釋放內存:in.close();

其他:

  • 判空:map.isEmpty();
  • 從鍵值中刪除:map.remove(“zhang”);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章