Ctrl K

Сводка заходов по доменам

Средняя
Домен состоит из частей, разделённых точками, например shop.example.net. Его родительские домены получаются отбрасыванием частей слева: example.net, а за ним net. У домена из одной части родителей нет. Заход на домен считается заходом и на все его родительские домены. Дан журнал log: каждая запись имеет вид "<count> <domain>", то есть число заходов, пробел и сам домен. Например, "300 shop.example.net" означает 300 заходов на shop.example.net. Верните сводку в том же формате "<count> <domain>": по одной строке для каждого домена, который встречается в журнале сам или как родительский, с суммарным числом заходов на него. Строки можно вернуть в любом порядке.
Пример 1
log=['40 shop.example.net'] → ['40 shop.example.net', '40 example.net', '40 net']

40 заходов на shop.example.net — это и 40 заходов на example.net, и 40 на net.

Пример 2
log=['5 api.cloud.io', '7 docs.cloud.io', '2 news.ru'] → ['5 api.cloud.io', '12 cloud.io', '12 io', '7 docs.cloud.io', '2 news.ru', '2 ru']

cloud.io и io собирают 5 + 7 = 12 заходов, news.ru и ru — по 2, а api.cloud.io и docs.cloud.io остаются со своими 5 и 7.

Ограничения
  • 1 ≤ len(log) ≤ 100
  • 1 ≤ len(log[i]) ≤ 100
  • Каждая запись — целое число от 1 до 10⁴, пробел и домен
  • Домен — одна или несколько непустых частей из строчных латинских букв и цифр, разделённых точками
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамые частые запросы СредняяРейтинг финалистов по голосам жюри СредняяКод из двух кусков СредняяПалиндром из двухбуквенных карточек СредняяСамый разговорчивый в чате Средняя
загружаем Python…
Вход
log=['40 shop.example.net']
Ожидается
['40 shop.example.net', '40 example.net', '40 net']

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 69 тестов на сервере, включая скрытые.