Leetcode 451 Sort Characters By Frequency
2016-12-26 16:27
453 查看
Given a string, sort it in decreasing order based on the frequency of characters.
Example 1:
Example 2:
Example 3:
Example 1:
Input: "tree" Output: "eert" Explanation: 'e' appears twice while 'r' and 't' both appear once. So 'e' must appear before both 'r' and 't'. Therefore "eetr" is also a valid answer.
Example 2:
Input: "cccaaa" Output: "cccaaa" Explanation: Both 'c' and 'a' appear three times, so "aaaccc" is also a valid answer. Note that "cacaca" is incorrect, as the same characters must be together.
Example 3:
Input: "Aabb" Output: "bbAa" Explanation: "bbaA" is also a valid answer, but "Aabb" is incorrect. Note that 'A' and 'a' are treated as two different characters.
//基于桶排序 public class Solution { public String frequencySort(String s) { Map<Character, Integer> map = new HashMap<>(); for (char c : s.toCharArray()) { if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } List<Character> [] bucket = new List[s.length() + 1]; for (char key : map.keySet()) { int frequency = map.get(key); if (bucket[frequency] == null) { bucket[frequency] = new ArrayList<>(); } bucket[frequency].add(key); } StringBuilder sb = new StringBuilder(); for (int pos = bucket.length - 1; pos >=0; pos--) { if (bucket[pos] != null) { for (char num : bucket[pos]) { for (int i = 0; i < map.get(num); i++) { sb.append(num); } } } } return sb.toString(); } }
相关文章推荐
- 频数相关的leetcode:451 Sort Characters By Frequency& 347 Top K Frequent Elements
- leetcode 451 Sort Characters By Frequency C++
- leetcode-451-Sort Characters By Frequency
- Leetcode_451 Sort Characters By Frequency
- Leetcode 451 Sort Characters By Frequency
- 【LeetCode-451】Sort Characters By Frequency
- 451. Sort Characters By Frequency
- 451. Sort Characters By Frequency(第十二周)
- 451. Sort Characters By Frequency
- 451. Sort Characters By Frequency
- Leetcode Sort Characters By Frequency
- leetcode题目: Sort Characters By Frequency 的C语言解法
- 算法分析与设计——LeetCode Problem.451 Sort Characters By Frequency
- 451. Sort Characters By Frequency
- 451. Sort Characters By Frequency**
- 451. Sort Characters By Frequency
- LeetCode Sort Characters By Frequency
- [LeetCode] Sort Characters By Frequency 根据字符出现频率排序
- 451. Sort Characters By Frequency
- 451. Sort Characters By Frequency