给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。
返回 已排序的字符串 。如果有多个答案,返回其中任何一个。
来源:力扣(LeetCode) 链接:leetcode.cn/problems/so… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:
- 1.将字符串的出现的字符进行分类
- 2.分类后按照降序排列
- 3.组装成一个字符串
/**
* @param {string} s
* @return {string}
*/
var frequencySort = function(s) {
let map = new Map();
let ans = ''
for (let i = 0; i < s.length; i++) {
map.get(s[i]) ? map.set(s[i], map.get(s[i])+1) : map.set(s[i], 1)
}
let sArr = [...map.entries()]
sArr.sort((a,b) => b[1] - a[1])
for (let i = 0; i < sArr.length; i++) {
let c = sArr[i][0]
let num = sArr[i][1]
ans = ans + c.repeat(num)
}
return ans
};