题解 | #字符统计#
字符统计
http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
真XX搞不懂 这种题有什么意思? 最后TreeMap转来转去的 恶心死了
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
HashMap<Character,Integer> map =new HashMap<>();
TreeMap<Integer,TreeSet<Character>> map2 =new TreeMap<>();
StringBuilder std= new StringBuilder();
String a = in.next();
for(int i=0;i<a.length();i++){
char s=a.charAt(i);
if(map.containsKey(s)){
map.put(s,map.get(s)+1);
}else{
map.put(s,1);
}
}
for(Character str:map.keySet()){
if(map2.containsKey(map.get(str))){
TreeSet<Character> set= map2.get(map.get(str));
set.add(str);
map2.put(map.get(str),set);
}else{
TreeSet<Character> set= new TreeSet<>();
set.add(str);
map2.put(map.get(str),set);
}
}
for(Integer st:map2.keySet()){
StringBuilder std1= new StringBuilder();
TreeSet<Character> set=map2.get(st);
for(Character str:set){
std1.append(str);
}
std.append(std1.reverse());
}
System.out.println(std.reverse().toString());
}
}
}