题解 | #名字的漂亮度#
名字的漂亮度
http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
int len = Integer.valueOf(scan.nextLine());
for(int i=0;i<len;i++){
String str = scan.nextLine();
solution(str);
}
}
}
public static void solution(String str){
int res = 0;
//数据范围:输入的名字长度满足
HashMap<Character,Integer> map = new HashMap<>();
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(map.containsKey(c)){
map.put(c,map.get(c)+1);
}else{
map.put(c,1);
}
}
int[] arr =new int[map.size()];//有多少个不同的字母
int start = 0;
for(Map.Entry entry : map.entrySet()){
arr[start++] = (int)entry.getValue();
}
Arrays.sort(arr);
int val = 26;
for(int i=arr.length-1;i>=0;i--){
res+=(val--)*arr[i];
}
System.out.println(res);
}
}
查看2道真题和解析