题解 | #字符统计#hashmap + treeset
字符统计
https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
import java.util.*;
import java.util.stream.*;
import java.util.regex.*;
import java.util.function.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String line = in.nextLine();
Map<Integer, Integer> countMap = new HashMap<>();
line.chars().forEach(c -> {
countMap.put(c, countMap.getOrDefault(c, 0)+1);
});
// System.out.println(countMap);
TreeSet<Integer> treeSet = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (countMap.getOrDefault(o1, 0) == countMap.getOrDefault(o2, 0)) {
return o1 - o2;
} else {
return countMap.getOrDefault(o2, 0) - countMap.getOrDefault(o1, 0);
}
}
});
line.chars().forEach(c -> {
treeSet.add(c);
});
// System.out.println(treeSet);
System.out.println(treeSet.stream().map(i -> (Character.valueOf((char)(int)i).toString())).collect(Collectors.joining("")));
}
}
查看29道真题和解析