【JAVA】UVA 10008 - What's Cryptanalysis?
Sample Input
3 要判斷幾行文字
This is a test.
Count me 1 2 3 4 5.
Wow!!!! Is this question easy?
Sample Output
S 7
T 6
I 5
E 4
O 3
A 2
H 2
N 2
U 2
W 2
C 1
M 1
Q 1
Y 1
注意:
- 只需要計算英文字母且大小寫不分,範例輸出可看出皆為大寫,因此直接將所有英文字母轉為大寫。
- 按照英文字母的使用頻率由小到大輸出,若有一樣次數的英文字母則由字母先後順序輸出。
import java.util.*;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int data[] = new int[26];
int Length=0,count=sc.nextInt(); //count代表有幾行字串
String a = sc.nextLine();
while(count-- >0){
String temp = sc.nextLine().toUpperCase(); //字串內容,將之轉為大寫
Length += temp.length();
for(int i=0 ; i<temp.length();i++){
if('A'<=temp.charAt(i) && temp.charAt(i)<='Z'){
data[(int)temp.charAt(i)-65]++; //將英文字母存至對應數的陣列中,若有重複則++ , 這邊的-65是ASCII減去大寫A
}
}
}
while(--Length>0){
for(int i=0;i<26;i++){
if(data[i]==Length){
System.out.println(((char)(i+65))+" "+data[i]);
}
}
}
}
};