上一篇介紹了Love Calculator,利用charAt()找出字母轉換成的數字相加(這題也會用到),在重複執行,直到剩下個位數,最後再用相除得出百分比就可以輸出答案了!
今天講解的題目是Tell me the frequencies!
先附上程式碼:
import java.util.;
import static java.lang.System.;
import java.util.Scanner;
public class main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int C=0;
while(sc.hasNextLine()){
if((C++)!=0)System.out.println("");
String S=sc.nextLine();
int arr[]=new int[127];
int max=0;
for(int i=0;i<S.length();i++) arr[S.charAt(i)]++;
for(int i=0;i<arr.length;i++) if(arr[i]>max) max=arr[i];
for(int i=1;i<=max;i++){
for(int j=arr.length-1;j>=0;j--){
if(arr[j]==i)System.out.println(j+" "+arr[j]);
}
}
}
}
};
這題會利用到ASCII碼,這題會用到charAt()來分析每個字元的數字,題目限制ASCII碼最小是32最大到128,接下來判斷陣列裡最大的數字是多少,接下來利用雙迴圈,先從陣列裡最小的數字開始,再到最大的數字,由大到小開始輸出,如果沒設MAX跟最後一個J的迴圈的話,那就會少了陣列裡的直從最小開始輸出了,一開始的陣列當然也可以不用設成127,也可以設成95,但這樣在輸入時就要多-32,會比較麻煩一點,因此多放幾個空的但是輸入比較方便還是好一點的。
今天的講解就到這裡。
明天也是新的題目,會介紹The Decoder,繼續加油!