Найти - Пользователи
Полная версия: Множества
Начало » Python для новичков » Множества
1
lightluck134
Уже как несколько недель не могу решить задачу, все коды, которые писала - не проходят, а сдавать сегодня. Помогите, пожалуйста.

Задание:
Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знает хотя бы один из школьников.

Формат ввода
Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которые знает i-й школьник. Длина названий языков не превышает 1000 символов, количество различных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.

Формат вывода
В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки - список таких языков. Затем - количество языков, которые знает хотя бы один школьник, на следующих строках - список таких языков.
DamMercul
 N = int(input())
one_time_names = []
many_times_name = []
many_times = {}
one_time = {}
langs = []
langs_col = {}
for h in range(0, N):
    langs.append(str(input()))
for g in langs:
    try:
        a = langs_col[g]
        langs_col[g] = langs_col[g] + 1
    except KeyError:
        langs_col[g] = 1
for x in langs:
    if langs_col[x] == 1:
        one_time[x] = 1
        if x not in one_time_names:
            one_time_names.append(x)
        else: pass
    else:
        many_times[x] = langs_col[x]
        if x not in many_times_name:
            many_times_name.append(x)
        else: pass
print(len(many_times_name), many_times)
print(len(one_time_names), one_time)

Решение выдает, возможно, ответ в неправильном формате. Перепиши конец как тебе надо. Думаю, этот вариант пройдет на тесте. По крайней мере он прошел 6 моих тестов
lightluck134
Спасибо!
Сегодня все же удалось найти верное решение. Оставлю его здесь, может быть кому-нибудь еще пригодится
students = {}
allLang = set([])
nPup = int(input())
for pup in range(1, nPup + 1):
nLang = int(input())
languages = []
for lang in range(1, nLang + 1):
languages.append(input())
students[pup] = languages
allLang = allLang.union(set(languages))
eachKnow = set(students.get(1))
for i in range(2, nPup + 1):
eachKnow = eachKnow.intersection(students.get(i))

print(len(eachKnow))
for lang in range(0, len(eachKnow)):
print(list(eachKnow)[lang])
print(len(allLang))
for lang in range(0, len(allLang)):
print(list(allLang)[lang])
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB