題解
其實很簡單,就是把輸入的ASCII Code依照出現次數(由小到大)輸出出來。 輸入不會包含前32跟128 每行最多就1000個字元。
要注意的是,每次的test case結束,都要再System.out.println()一次,而最後一次不需要。
package OneStar;
import java.util.Scanner;
public class UVA10062 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr= new int[96]; //陣列儲存所有有可能出現的字元為i,並且裡面存出現次數
int cn = 0; //純粹為了第一次不要輸出到\r\n
while(sc.hasNext()){
if(cn != 0){
System.out.println();
}
cn++;
String line = sc.nextLine();
for(int i = 0 ; i < line.length(); i++){
arr[line.charAt(i)-32]++;
}
for(int i = 1 ; i <= 1000; i++){
for(int j = arr.length-1; j >=0; j--){
if(arr[j]==i){
System.out.println((j+32)+" "+arr[j]);
}
}
}
arr = new int[96];
}
}
}