给出两种解法
http://career-oj.huawei.com/exam/ShowProblemInfo?method=campusProblemInfo&id=2286
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class BeautifulDu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int nameOfNum = sc.nextInt();
String []names = new String[nameOfNum];
char []ch = new char[26];
for(int i = 0; i < ch.length; i++){
ch[i] = 0;
}
for(int i = 0; i < nameOfNum; i++){
names[i] = sc.next().toLowerCase();
}
for(int i = 0; i < nameOfNum; i++){
int sumBea = 0;
char []tmp = names[i].toCharArray();
for(int j = 0; j < names[i].length(); j++){
ch[tmp[j]-'a']++;
}
Arrays.sort(ch);
for(int k = 25; k >= 0 ; k--){
if(ch[k] != 0){
sumBea += ch[k]*(k+1);
ch[k] = 0;
}
else
break;
}
System.out.println(sumBea);
}
}
public static void printBeautiful(String names){
Map<Character,Integer> map = new HashMap<Character,Integer>();
char [] name = names.toCharArray();
for(int j=0; j<name.length; j++){
if(map.containsKey(name[j])){
map.put(name[j], map.get(name[j])+1);
}else
map.put(name[j], 1);
}
List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character, Integer>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<Character, Integer>>() {
public int compare(Map.Entry<Character, Integer> o1,Map.Entry<Character, Integer> o2){
return o2.getValue().compareTo(o1.getValue());//降序排列
}
});
int result=0;
for (int i1 = 0; i1 < list.size(); i1++) {
result=result+list.get(i1).getValue()*(26-i1);
}
System.out.print(result);
}
}