资讯专栏INFORMATION COLUMN

451. Sort Characters By Frequency

changfeng1050 / 1490人阅读

451. Sort Characters By Frequency

题目链接:https://leetcode.com/problems...

hashmap求frequency加排序,排序可以用bucket sort or heap sort。

bucket sort:

public class Solution {
    public String frequencySort(String s) {
        Map map = new HashMap();
        int max = 0;
        for(char c : s.toCharArray()) {
            map.put(c, map.getOrDefault(c, 0) + 1);
            max = Math.max(map.get(c), max);
        }
        
        List[] bucket = new List[max + 1];
        int count = 0;
        for(char c : map.keySet()) {
            int index = map.get(c);
            if(bucket[index] == null) bucket[index] = new ArrayList();
            bucket[index].add(c);
            count++;
        }
        StringBuilder sb = new StringBuilder();
        sb.append("");
        for(int i = bucket.length-1; i >= 0; i--) {
            if(bucket[i] != null) {
                for(char c : bucket[i]) {
                    for(int j = 0; j < i; j++)  sb.append(c);
                    count--;
                }
                if(count == 0) break;
            }
        }
        return sb.toString();
    }
}

heap sort参考discussion:
https://discuss.leetcode.com/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66656.html

相关文章

  • [LeetCode] 451. Sort Characters By Frequency

    Problem 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 app...

    Pluser 评论0 收藏0
  • leetcode451. Sort Characters By Frequency

    摘要:题目要求将字符串按照每个字母出现的次数,按照出现次数越多的字母组成的子字符串越靠前,生成一个新的字符串。这里要注意大小写敏感。以此循环,直到将所有的字母都输出。 题目要求 Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: tree ...

    feng409 评论0 收藏0
  • 那些年我们踩过的乱码坑

    摘要:因此导致乱码的真正原因就是各平台间对标准实现不一致包括实现的时间先后不同,以及所代表含义不同。日本几家公司各自定义了一套标准,用两个字节表示符号,日本电脑系统的一种编码编码是从到。在上找到了与标准的对应关系。 欢迎关注个人网站:http://www.iamaddy.net/2016/07/emoji-unicode-parser/ 前言 这是一个由乱码引发的故事。抱歉我暂时找不到更加惨...

    jhhfft 评论0 收藏0
  • 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三

    摘要:将就用一下,能实现相同的功能就可以了。的方法可以从返回最大值,但是新版中的不行,只能通过这样的方式返回最大值。 前篇 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一)使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(二) 原文第十三步,Express API路由 第一个路由是用来创建角...

    JessYanCoding 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<