import java.util.*;
public class Main {
public static int countBeauty(String s){
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
map.merge(s.charAt(i), 1, Integer::sum);
}
ArrayList<Integer> array = new ArrayList<>(map.values());
Collections.sort(array, Collections.reverseOrder());
int num = 26;
int res = 0;
for (int i = 0; i < array.size(); i++) {
res += num-- * array.get(i);
}
return res;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for (int i = 0; i < n; i++) {
String s = in.next();
System.out.println(countBeauty(s));
}
}
}
功能解析
- 提取 Map 值map.values() 返回 Map 中所有 value 的 Collection 视图
- 转换为 ArrayListnew ArrayList<>(map.values()) 创建包含所有值的可变列表
- 降序排序Collections.sort() 配合 Collections.reverseOrder() 实现降序排列