给定一个字符串,请将字符串里的字符按照出现的频率降序排列。

示例 1:

输入:"tree"
输出:"eert"
解释:'e'出现两次,'r'和't'都只出现一次。
因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。

示例 2:

输入:"cccaaa"
输出:"cccaaa"
解释:'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案。
注意"cacaca"是不正确的,因为相同的字母必须放在一起。

示例 3:

输入:"Aabb"
输出:"bbAa"
解释:此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。
注意'A'和'a'被认为是两种不同的字符。

class Solution {
public:
    string frequencySort(string s) {
        string res = "";
        priority_queue<pair<int, char>> q;
        unordered_map<char, int> m;
        for (char c : s) ++m[c];
        for (auto a : m) q.push({a.second, a.first});
        while (!q.empty()) {
            auto t = q.top(); q.pop();
            res.append(t.first, t.second);
        }
        return res;
    }
};

451.根据字符出现频率排序相关推荐

  1. LeetCode Algorithm 451. 根据字符出现频率排序

    451. 根据字符出现频率排序 Ideas Python解法:用个计数器,然后遍历计数器把相应字符乘以出现次数拼接起来就可以了. Code Python from collections import ...

  2. leetcode 451. 根据字符出现频率排序

    给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1:输入: "tree"输出: "eert"解释: 'e'出现两次,'r'和't'都只出现一次 ...

  3. LeetCode 451 根据字符出现频率排序

    题目描述 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 题解 桶排序 代码 class Solution { public:string frequencySort(string s) ...

  4. LeetCode 451. 根据字符出现频率排序(Sort Characters By Frequency)

    题目描述: 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree"输出: "eert"解释: 'e'出现两次,'r'和't ...

  5. Leetcode 451. 根据字符出现频率排序 解题思路及C++实现

    解题思路: 先使用unordered_map对字符串s中字符,进行频数统计: 再使用最大堆,对unorder_map进行排序: 接着将排序结果存在结果字符串res中. class Solution { ...

  6. LeetCode 451. 根据字符出现频率排序(map+优先队列)

    1. 题目 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 输入: "tree"输出: "eert" 2. 优先队列解题 先用map统计字符出现次数 ...

  7. 451. 根据字符出现频率排序golang

    官解 func frequencySort(s string) string {charMap := make(map[rune]int)arr := make([]string, len(s))fo ...

  8. c++ list排序_LeetCode.451-根据字符出现频率排序

    根据字符出现频率排序 力扣​leetcode-cn.com 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 参考了评论区 Felix8bit 的答案 解题思路: 先根据每个词出现的概率进行 ...

  9. LeetCode中等题之根据字符出现频率排序

    题目 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't' ...

  10. 根据字符出现频率排序

    给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree"输出: "eert"解释: 'e'出现两次,'r'和't'都只出现一 ...

最新文章

  1. 记录一次异常 出现不支持的 SQL92 标记: 70
  2. malloc()参数为0的情况
  3. linux控制命令使用限制,【L-shell】Linux 系统下 限制用户的活动目录,控制用户使用命令的权限。...
  4. 速递|2021双11阿里云数据库技术快报
  5. VUE初始化一个项目
  6. docker搭建pxc集群
  7. android 动态contextmenu,Context-Menu.Android
  8. apache 网站转nginx_堡塔网站加速宝塔面板网站加速安装设置使用教程
  9. python 防破解_Python 程序员如何防止数据被修改?
  10. slz-servlet的引入
  11. sql与MySQL like用法_MySQL中Like概念及用法讲解
  12. QVector、QList、QLinkedList 类
  13. 【工具使用】Modscan32软件使用详解
  14. 谈一谈凑单页的那些优雅设计
  15. 解决联想拯救者Y7000安装ubuntu系统wifi无法连接以及关机卡死问题
  16. ztext - 简单几行代码创建酷炫 3D 特效文字的开源 JS 库
  17. 经典的71个做饭技巧,当你熟悉了,你就是二级厨师了
  18. android HDMI (一):HDMI基础篇
  19. \t\t把超星图书虚拟打印为PDF格式,实现永久阅读
  20. Doris数据仓库总结

热门文章

  1. BOM知识点全面总结(附实例、图解)
  2. axure产品原型图,元件库导入方法
  3. 第13章 用序列化保存模型
  4. Firefox 火狐恢复下载失败的任务(原创)
  5. oracle ADF 代码标准
  6. 持续集成并不能消除 Bug,而是让它们非常容易发现和改正(转)
  7. 如何解决xp进系统的时候需要按enter键
  8. 计算机审计初级难度,到现在你还不知道注会各科通过率 就真的out啦
  9. jdbcTemplate注入过程
  10. Jsp链接传值中文乱码问题解决