题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
import java.util.Scanner;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(); //字符串个数
//输入处理,接收回车符否则会计算数字n的漂亮度
in.nextLine();
String[] strArr = new String[n];
for (int i = 0; i < n; i++) {
strArr[i] = in.nextLine();
System.out.println(computeBeautify(strArr[i]));
}
}
public static int computeBeautify(String string) {
// TODO
int beautify = 0;
//统计各个字母出现的次数
int[] nums = new int[26];
//将字符串转小写
String lowStr = string.toLowerCase();
for (int i = 0; i < lowStr.length(); i++) {
nums[string.charAt(i) - 'a']++;
}
//按字母出现次数升序排序
Arrays.sort(nums);
//计算名字的漂亮度
for (int i = 0; i < 26; i++) {
beautify += nums[i] * (i + 1);
}
return beautify;
}
}
