Подсчитайте общую частоту каждого символа через Map и выведите пары в порядке первого появления. Это частотный подсчёт, а не сжатие только соседних повторов.
Функция подсчёта частоты символов в строке
Подсчитайте общую частоту каждого символа через Map и выведите пары в порядке первого появления. Это частотный подсчёт, а не сжатие только соседних повторов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Требуется написать функцию countChars, принимающую строку, подсчитывающую, сколько раз каждый символ встречается, и выводящую результат в виде количество**символ.
Ответ
Подсчитайте общую частоту каждого символа через Map и выведите пары в порядке первого появления. Это частотный подсчёт, а не сжатие только соседних повторов.
function countChars(text) {
const counts = new Map();
for (const ch of text) counts.set(ch, (counts.get(ch) ?? 0) + 1);
return [...counts].map(([ch, count]) => `${count}**${ch}`).join(' ');
}
console.log(countChars('abaca')); // 3**a 1**b 1**c
Здесь формат «количество**символ» трактуется буквально, пары разделяются пробелом. Если звёздочки в условии были только разметкой выделения, поменяйте шаблон строки. Пробелы и регистр исходной строки учитываются; for...of работает по Unicode-кодовым точкам. Сложность O(n + k).