LeetCode 451. Sort Characters By Frequency
来源:互联网 发布:兼职在家做数据录入 编辑:程序博客网 时间:2024/04/30 09:54
原题网址:https://leetcode.com/problems/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.
方法:桶排序
public class Solution { private int[] frequency(char[] sa) { int[] counts = new int[256]; for(int i = 0; i < sa.length; i++) { counts[sa[i]]++; } return counts; } public String frequencySort(String s) { char[] sa = s.toCharArray(); int[] f = frequency(sa); Map<Integer, StringBuilder> inverse = new HashMap<>(); for(int i = 0; i < f.length; i++) { if (f[i] > 0) { StringBuilder sb = inverse.get(f[i]); if (sb == null) { sb = new StringBuilder(); inverse.put(f[i], sb); } sb.append((char)i); } } char[] sorted = new char[sa.length]; for(int i = sa.length, pos = 0; i > 0; i--) { StringBuilder sb = inverse.get(i); if (sb == null) continue; for(int j = 0; j < sb.length(); j++) { char ch = sb.charAt(j); for(int k = 0; k < i; k++) { sorted[pos++] = ch; } } } return new String(sorted); }}
0 0
- LeetCode 451. Sort Characters By Frequency
- [LeetCode]451. Sort Characters By Frequency
- [leetcode] 451. Sort Characters By Frequency
- [LeetCode]451. Sort Characters By Frequency
- LeetCode笔记:451. Sort Characters By Frequency
- LeetCode 451. Sort Characters By Frequency
- 【LeetCode】 451. Sort Characters By Frequency
- [leetcode]451. Sort Characters By Frequency
- Leetcode 451. Sort Characters By Frequency
- Leetcode 451. Sort Characters By Frequency
- Leetcode-451. Sort Characters By Frequency
- LeetCode 451. Sort Characters By Frequency
- LeetCode 451. Sort Characters By Frequency
- LeetCode OJ 451. Sort Characters By Frequency
- leetcode题解-451. Sort Characters By Frequency
- 【Leetcode】451. Sort Characters By Frequency
- LeetCode 451. Sort Characters By Frequency
- leetcode 451. Sort Characters By Frequency
- 在jsp中应用EL表达式取内置对象的值
- MySQL存储引擎的选择
- tomcat启动birt项目报错出现 Servlet ViewerServlet is not available
- 架构设计:系统存储(19)——图片服务器:需求和技术选型(1)
- Selenium自动化测试实战项目(一)
- LeetCode 451. Sort Characters By Frequency
- 黑板课爬虫闯关第一关
- HTML5 localStorage
- 第十七课 弱引用table
- eclipse代码自动提示
- Android中的OutOfMemoryError
- Apache模块mod_rewrite
- iOS多线程之Pthread/NSthread
- nova 创建虚拟机