题目描述:

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

示例 1:

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

示例 2:

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

示例 3:

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

思路:

首先遍历字符数组,统计出每个字符出现了多少次,用一个哈希表可以很方便地统计次数,在JavaScript中可以直接使用object进行统计。然后将统计信息根据出现的次数进行排序,在JavaScript中可以直接使用Array.prototype.sort排序,最后输出结果。

JavaScript:

/*** @param {string} s* @return {string}*/
var frequencySort = function(s) {var arr=s.split('');var obj={};for(var i=0;i<arr.length;i++){var item=arr[i];if(!obj[item]){obj[item]=1;}else{obj[item]=obj[item]+1;}}//排序var arr=[];for(var atrr in obj){arr.push([atrr,obj[atrr]]);}arr.sort(function(a,b){return b[1]-a[1];});var result='';for(var i=0;i<arr.length;i++){for(var j=0;j<arr[i][1];j++){result+=arr[i][0];}}return result;};

LeetCode 451. 根据字符出现频率排序(Sort Characters By Frequency)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. leetcode: 451. Sort Characters By Frequency

    451. Sort Characters By Frequency Given a string, sort it in decreasing order based on the frequency ...

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

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

  9. LeetCode Sort Characters By Frequency

    题意:给出一个字符串s,按字符出现频率排序 代码如下: class Solution(object):def frequencySort(self, s):""":typ ...

最新文章

  1. 你的房东可能正用AI筛查你的犯罪记录,决定要不要租房给你
  2. 打字机已经被计算机所取代用英语,无法被电脑所取代的职业
  3. VC++(关于CTreecontrol控件的用法 )
  4. linux历史性能数据,Linux平台下如何看OS历史的性能数据
  5. jquery操作select - 代码合集
  6. Javascript图片滚动
  7. Drools集成SpringBootStarter
  8. Linux中利用NFS实现飞鸽传书
  9. 张小龙 4 小时演讲没时间看?看这一篇就够了!「附赠张小龙历年演讲实录 PDF」...
  10. 8086汇编语言程序设计典型题目
  11. 模仿腾讯QQ的web登陆面板
  12. VHDL串口通信 在FPGA开发板上测试 并解决没有识别到下载接口USB_Blaster(No Hardware问题)
  13. Python 环境及开发工具 IDLE 安装教程
  14. 计算机局域网组网技术的核心技术,自考“局域网技术与组网工程”模拟题(6)
  15. 二项式定理与多变量函数的泰勒展开_拔剑-浆糊的传说_新浪博客
  16. 微服初识/优缺点2020-09-03
  17. Ubuntu 安装及共享打印机
  18. 求职简历撰写要点和模板分享
  19. Python线程池的使用方法
  20. 键盘F1~F12的用处!

热门文章

  1. 測试AtomicInteger与普通int值在多线程下的递增操作
  2. xml 连表查询(2) --自关联! 查询父类name,显示父类下的所有子类
  3. BestCoder Round #87 1003 LCIS[序列DP]
  4. java中int,char,string三种类型的相互转换
  5. centos 去除屏幕保护
  6. 安装nginx、drizzle和lua
  7. 《Asp.Net 2.0 揭秘》读书笔记(九)
  8. 赛我 v.s Fzone v.s 喔赛 用户体验对比分析
  9. 网络(9)-HTTPS协议
  10. 在windows上搭建redis集群(Redis-Cluster)