题目描述:
示例 1:
解释:
示例 2:
解释:
示例 3:
解释:
此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。
注意'A'和'a'被认为是两种不同的字符。
思路:
代码实现:
class Solution {
public String frequencySort(String s) {
if (s == null || s.length() == 0 || s.length() == 1) return s;
Map<String, Integer> map = new HashMap();
for (int i = 0; i < s.length(); i++) {
Integer num = map.getOrDefault(s.charAt(i) + "", 0);
if (num != 0) {
map.put(s.charAt(i) + "", ++num);
} else {
map.put(s.charAt(i) + "", 1);
}
}
StringBuilder sb = new StringBuilder();
Set<Map.Entry<String, Integer>> entrySet = map.entrySet().stream().sorted(Comparator.comparing((o2) -> o2.getValue())).collect(Collectors.toCollection(LinkedHashSet::new));
for (Map.Entry<String, Integer> entry : entrySet) {
for (int i = 0; i < entry.getValue(); i++) {
sb.append(entry.getKey() + "");
}
}
return sb.reverse().toString();
}
}