Посчитайте количество каждого символа в text, кроме пробелов. Для каждого уникального символа выведите одну запись в формате "символ:количество", отсортированную по коду символа (то есть заглавные буквы идут перед строчными).
Реализуйте функцию character_frequency(text).
Входные данные
text: Текст для подсчёта (ASCII-символы).
Выходные данные
Верните список записей вида "символ:количество".
Ограничения
0 ≤ длина ≤ 10 000
Примеры
Ввод:
text = "hello"
Ожидаемый вывод:
expected = ["e:1", "h:1", "l:2", "o:1"]
Ввод:
std::string text = "hello";
Ожидаемый вывод:
std::vector<std::string> expected = {"e:1", "h:1", "l:2", "o:1"};
Ввод:
string text = "hello";
Ожидаемый вывод:
string[] expected = new string[] {"e:1", "h:1", "l:2", "o:1"};
Пояснение
e:1, h:1, l:2, o:1 отсортированы по символу: ["e:1", "h:1", "l:2", "o:1"].
Ввод:
text = "a a A"
Ожидаемый вывод:
expected = ["A:1", "a:2"]
Ввод:
std::string text = "a a A";
Ожидаемый вывод:
std::vector<std::string> expected = {"A:1", "a:2"};
Ввод:
string text = "a a A";
Ожидаемый вывод:
string[] expected = new string[] {"A:1", "a:2"};
Пояснение
Пробелы пропускаются; "A" идёт перед "a": ["A:1", "a:2"].
Как подступиться
Сначала попробуйте сами, затем открывайте подсказки по одной.
Подсказка 1
Пропускайте пробелы, но считайте каждый другой ASCII-символ ровно как он есть.
Подсказка 2
Накопите счётчики в таблице частот, затем выведите каждый символ один раз.
Подсказка 3
Сортируйте по коду символа, чтобы порядок верхнего и нижнего регистра естественно следовал ASCII.
Ожидаемая сложность
время O(n + m log m), доп. память O(m)
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.