451. Sort Characters By Frequency
Given a string, sort it in decreasing order based on the frequency of characters.
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.
题目含义:按字母出现次数的降序重排字符串
1 public String frequencySort(String s) { 2 Map<Character, Integer> map = new HashMap<>(); 3 for (int i = 0; i < s.length(); i++) { 4 map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0)+1); 5 } 6 PriorityQueue<Map.Entry<Character, Integer>> pq = new PriorityQueue<>( 7 new Comparator<Map.Entry<Character, Integer>>() { 8 @Override 9 public int compare(Map.Entry<Character, Integer> a, Map.Entry<Character, Integer> b) { 10 return b.getValue() - a.getValue(); 11 } 12 } 13 ); 14 pq.addAll(map.entrySet()); 15 StringBuilder sb = new StringBuilder(); 16 while (!pq.isEmpty()) { 17 Map.Entry<Character, Integer> e = pq.poll(); 18 for (int i = 0; i < e.getValue(); i++) { 19 sb.append(e.getKey()); 20 } 21 } 22 return sb.toString(); 23 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!