Топ-k частых слов на Go
Условие
Найдите k самых частых слов в тексте. Слово это максимальная последовательность букв (латиница или кириллица), всё остальное разделители, включая цифры. Регистр не важен: приводите слова к нижнему регистру.
Сортировка: по убыванию частоты, при равенстве по возрастанию слова (побайтово). Если различных слов меньше k, выведите все. Если слов нет, ничего не выводите.
Ввод: в первой строке k (1 ≤ k ≤ 100), дальше текст до конца ввода (до 30 КБ).
Вывод: строки слово частота.
Пример
2
Кот и пёс. Кот, пёс и КОТ!
кот 3
и 2
Как подойти
Разбор по рунам с unicode.IsLetter, map[string]int, сортировка по (-count, word).
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Число подмассивов с суммой k на Go
Следующий вопрос
Что выведет Go: append при полной ёмкости
Ещё по теме «Слайсы и мапы изнутри»
- Разбить слайс на части по k на Go
- Удаление дубликатов с сохранением порядка на Go
- Группировка анаграмм на Go
- Циклический сдвиг слайса на Go
- Что выведет Go: два append в один подслайс
- Что выведет Go: массив передаётся по значению
- Что выведет Go: изменение элемента и append в функции
- Что выведет Go: удаление ключей во время range