题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 0;i < n;i++){
String s = sc.next();
System.out.println(cal(s));
}
}
public static int cal(String s){
char[] c = s.toCharArray();
StringBuilder sb = new StringBuilder();
int sum = 0;
//记录所有字母
for(int i = 0;i < c.length;i++){
if(!sb.toString().contains(String.valueOf(c[i]))){
sb.append(c[i]);
}
}
String res = sb.toString();
int n = 26;
int[] nums = new int[26];
//记录每个字母出现的次数
for(int i = 0;i < res.length();i++){
int count = s.length() - s.replaceAll(String.valueOf(res.charAt(i)),"").length();
nums[i] = count;
}
Arrays.sort(nums);
for(int i = 25;i >= 26-res.length();i--){
sum += nums[i]*n;
n--;
}
return sum;
}
}
菜鸟第一次自己写出中级题,留个纪念