Increasing Decreasing String LeetCode solution in JavaScript

1
/**
2
* @param {string} s
3
* @return {string}
4
*/
5
var sortString = function (s) {
6
const counts = [...s].reduce(
7
(acc, cur) => ((acc[cur.charCodeAt() - 97] += 1), acc),
8
new Array(26).fill(0)
9
);
10
const result = [];
11

12
const pick = (code) => {
13
if (counts[code]) {
14
result.push(String.fromCharCode(code + 97));
15
counts[code] -= 1;
16
}
17
};
18

19
while (result.length < s.length) {
20
for (let i = 0; i < counts.length; i++) pick(i);
21
for (let i = 0; i < counts.length; i++) pick(counts.length - 1 - i);
22
}
23

24
return result.join("");
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0