L. Однофамильцы — 2

Вновь поможем сотруднику из отдела кадров выяснить, сколько мужчин-однофамильцев работает в организации, но уже немного с иными условиями.

Формат ввода

В первой строке указывается количество мужчин — сотрудников организации (N).
Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.

Формат вывода:

Список однофамильцев в организации с указанием их количества в алфавитном порядке.
Если таковых нет — вывести «Однофамильцев нет».

Пример

Ввод

6
Иванов
Петров
Сидоров
Петров
Иванов
Петров

Вывод

Иванов - 2
Петров - 3

Ввод

3
Иванов
Петров
Сидоров

Вывод

Однофамильцев нет

Решение

Как и в прошлой задаче, накапливаем фамилии в частотный словарь, сортируем, затем ищем количество элементов, значение которых больше единицы и выводим в качестве ответа. Если вывели хоть одну фамилию, устанавливаем признак наличия вывода. Если по окончании поиска признак оказался не установлен – выводим сообщение о том, что однофамильцев нет.

Посмотреть код

Решение

Python
namesakes = dict()
for _ in range(int(input())):
    name = input()
    namesakes[name] = namesakes.get(name, 0) + 1

namesakes = dict(sorted(namesakes.items()))

printed = False

for name in namesakes:
    if namesakes[name] > 1:
        print(name, '-', namesakes[name])
        printed = True

if not printed:
    print('Однофамильцев нет')
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Smotri
Smotri
22.10.2024 01:19

Сам не додумался в чём ошибка, на 6-ой проверке ошибка, посмотреть что не так и какие вводные использует яндекс тоже никак
n = int(input())
dct = {}
flag = True
for i in range(n):
    name = input()
    dct[name] = dct.get(name, 0) + 1

for key, value in dct.items():
    if value > 1:
        flag = False
        print(f‘{key} – {value}’)

if flag:
    print(‘Однофамильцев нет’)