Функция подсчёта частоты символов в строке

Подсчитайте общую частоту каждого символа через 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).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее