https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1003 困難度 ★ 這題要注意的地方是換行位置每筆測資尾都要換行,除了最後一筆測資 還有要注意是每一個字母都要計數(包含符號空白ASCii 32~126) 當然要設128個陣列也行浪費記憶體空間而已並且浪費一點點時間
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int f = 0;
while (scn.hasNext()) {
int ary[] = new int[95], max = 0;
if (f != 0)
System.out.println();
f++;
String str = scn.nextLine();
char arr[] = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
ary[arr[i] - ' ']++;
if (ary[arr[i] - ' '] > max)
max = ary[arr[i] - ' '];
}
for (int i = 1; i <= max; i++)
for (int j = ary.length - 1; j >= 0; j--)
if (ary[j] == i)
System.out.printf("%d %d\n", j + ' ', ary[j]);
}
}
/*
題目:Q10062: Tell me the frequencies!
作者:1010
時間:西元 2016 年 7 月 */
}