在 JavaScript 中按频率对字符串字符进行排序
问题
我们需要编写一个JavaScript函数,该函数接受字符串作为唯一参数。
我们的函数应该准备一个基于原始字符串的新字符串,其中出现次数最多的字符首先放置,然后是频率递减的数字。
例如,如果函数的输入是-
const str = 'free';
那么输出应该是-
const output = 'eefr';
输出说明:
因为e出现了两次,所以它首先被放置,然后是r和f。
示例
此代码将是-
const str = 'free';
const frequencySort = (str = '') => {
let map = {}
for (const letter of str) {
map[letter] = (map[letter] || 0) + 1;
};
let res = "";
let sorted = Object.keys(map).sort((a, b) => map[b] - map[a])
for (let letter of sorted) {
for (let count = 0; count < map[letter]; count++) {
res += letter
}
}
return res;
};
console.log(frequencySort(str));代码说明:
我们采取的步骤是-
首先,我们准备了一个字母计数的hashmap
然后我们按字母数对映射进行排序
最后,我们从排序的字母中生成res字符串
输出结果
控制台中的输出将是-
eefr
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法