题解 | #名字的漂亮度#Arraylist 按频率排序
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num=in.nextInt();
for(int i=0;i<num;i++){
System.out.println(beautydu(in.next()));
}
}
//TreeSet来按照频率排序
//漂亮度=key0*25+key1*24+...
private static int beautydu(String s){
ArrayList<Integer> ts=new ArrayList<Integer>();
while(s.length()!=0){
int len=s.length();
s=s.replaceAll(String.valueOf(s.charAt(0)),"");
ts.add(len-s.length());
}
ts.sort(new Comparator<Integer>(){
public int compare(Integer a,Integer b){
return b-a;
}
});
//计算漂亮读
int du=26;
int result=0;
for(int key:ts){
result+=key*du;
du--;
}
return result;
}
}
查看21道真题和解析