題解

其實很簡單,就是把輸入的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];  
        }  
    }  
}