Python
вместе, но в какой-то момент Соня заметила, что некоторые игрушки уникальны и есть только у одного из ребят.
Напишите программу, которая для каждой игрушки определяет, сколько детей ее имеют. Если у игрушки только один владелец, то выведи название игрушки на экран.
Формат ввода
В первой строке задается количество детей в группе (
N
N).
В каждой из следующих
N
N строк записано имя ребенка и его игрушки в формате:
<Имя>: <игрушка1>, <игрушка2>, ...
Формат вывода
Список игрушек, которые есть только у одного из детей в алфавитном порядке.
Пример
Ввод Вывод
4
Соня: кукла, мяч, кукла
Маша: мяч, машинка
Петя: мяч, конструктор
Вася: мяч, медвежонок
конструктор
кукла
машинка
медвежонок
Answers & Comments
n = int(input())
toys = {}
for i in range(n):
name, toys_str = input().split(': ')
toys_list = toys_str.split(', ')
for toy in toys_list:
if toy in toys:
toys[toy].append(name)
else:
toys[toy] = [name]
unique_toys = []
for toy, owners in toys.items():
if len(owners) == 1:
unique_toys.append(toy)
unique_toys.sort()
for toy in unique_toys:
print(toy)
Сначала мы создаем пустой словарь toys, который будет хранить информацию о том, у каких детей есть какие игрушки. Затем мы считываем информацию о каждом ребенке и его игрушках и обновляем словарь toys.
После этого мы проходим по словарю toys и находим игрушки, которые есть только у одного ребенка. Такие игрушки добавляем в список unique_toys.
Наконец, мы сортируем список unique_toys в алфавитном порядке и выводим его элементы на экран.