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 appear before both ' r ' and ' t '. Therefore "Eetr" is also a valid answer.
Example 2:
Input:"cccaaa"Output:"cccaaa"Explanation:Both ' C ' and ' a ' appear three times, so "AAACCC" is Also a valid answer. Note that "Cacaca" was incorrect, as the same characters must be together.
Example 3:
Input:"Aabb"Output:"Bbaa"Explanation:"Bbaa" is also a valid answer and "Aabb" is incorrect. Note that ' a ' and ' a ' is treated as the different characters.
given a string, sort by the frequency of the characters.
/**
* @param {string} s
* @return {string}
*/
var frequencySort = function (s) {
let m = {};
for (let i in s) {
let c = s[i];
if (m[c]) {
m[c]++;
} else {
m[c] = 1;
}
}
let arr = [];
for (let i in m) {
let d = {};
d.str = i;
d.time = m[i];
arr.push(d);
}
arr.sort((a, b) => {
return b.time - a.time;
});
let res = "";
for (let i in arr) {
let item = arr[i];
res += item.str.repeat(item.time);
}
return res;
};
// let s = "Aabb";
// console.log(frequencySort(s));
From for notes (Wiz)
451. Sort characters by Frequency sorting characters by frequency