[Day18]Tell me the frequencies!

上一篇介绍了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,继续加油!


<<:  4 游戏状态结构

>>:  Day 18 渐层颜色文字

9 结束这回合

今天我们可能可以来做一下回合,毕竟要算分数还是干嘛都是建立在回和上面。 目前我们的 game str...

D3JsDay11 观测时候别铁齿,拿出你的比例尺

前言 想像一下假设今天你的资料的数字是如此庞大,而电脑萤幕的宽和高却是有限的情况之下,不可能以1个人...

Day14 上上下下左左右右 & 世代差异的沟通术

如果你看到标题秒懂而且联想到梁家辉的话,我只能说,你一定是一个擅长沟通的好PM。 谈到团队内沟通,跟...

【第29天】探讨与改善-资料不平衡(二)

摘要 前言 实验设计 2.1 预训练模型 2.2 资料集 模型训练方式 3.1 最初模型(model...

Day 20:「资料拿来我就帮你改」- Vue 基础观念及常用语法

嘿~昨天的内容还行吗? 「兔兔,昨天突然就接收到大量语法!」 齁,这个我就要说声不好意思~ 原本是...