ECNU 69 完美度
ECNU 69 完美度
链接
https://acm.ecnu.edu.cn/problem/69
题目
单点时限: 1.0 sec
内存限制: 256 MB
约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个 到 之间的整数。约翰不在乎字母大小写。(也就是说对应的大小写字母完美度相同)
给定一个字符串,输出它的最大可能的完美度。
输入格式
输入一个长度不超过 的字符串。字符串由英文字母构成。
对于 的数据,字符串长度不超过 。
输出格式
输出字符串的最大可能的完美度。
样例
input
daD
output
77
提示
daD,你可以将 26 分配给 d,25 分配给 a,这样整个字符串完美度为 77。
思路
直接全部转为小写字母,然后找字母数量,字母多的分配26,少的分配1,一个乘法就行。
代码
public static void fun() {
Scanner sc = new Scanner(System.in);
String str = sc.next();
str = str.toLowerCase();
StringBuffer sb = new StringBuffer(str);
int[] num = new int[27];
for (int i = 0; i < str.length(); i++) {
char t = sb.charAt(i);
num[t - 'a']++;
}
Arrays.sort(num);
int count = 0;
for (int i = 0; i < 27; i++) {
count += num[i] * i;
}
System.out.println(count);
}