Множества и словари для ЕГЭ по информатике: как сдать без репетитора
Множества и словари — тема, которая в ЕГЭ по информатике встречается почти в каждом втором задании. Но многие сливаются на ней, потому что в школе объясняют скучно, а репетитор стоит как крыло самолёта. Короче, сейчас разберёмся, что реально проверяют, как не потерять баллы и где сэкономить.
Ты сам гуглишь «множества и словари как сдать» — значит, уже понял, что это важно. Я расскажу без воды: конкретные типы заданий, три шортката, которые сэкономят время на экзамене, и где обычно лажают. А ещё покажу, как Наставник AI объяснит тему голосом Витька или Криштиану — и это дешевле пиццы.
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.
Что реально проверяют на ЕГЭ по этой теме
На ЕГЭ по информатике множества и словари чаще всего встречаются в заданиях 2, 5, 8, 12, 16, 17, 22, 23, 24, 25. По факту, это задачи на:
- Уникальность элементов (set) — например, найти количество различных символов в строке.
- Операции над множествами (пересечение, объединение, разность) — часто в комбинации с логическими операциями.
- Словари для подсчёта частот — классика: сколько раз встречается каждый символ или число.
- Хранение данных в формате ключ-значение — например, для быстрого поиска или замены.
Конкретные примеры: задание 12 (исполнитель Редактор), где нужно заменить строку по правилам — словарь или множество ускоряют анализ. Задание 24 (обработка строк) — подсчёт частот символов. Задание 25 (массивы) — фильтрация уникальных значений.
На экзамене дают готовый код на Python, но нужно понимать, как работают set и dict, чтобы не написать кашу.
Дана строка S. Найдите количество различных символов в строке. Например, S = 'abracadabra'.
Шаг 1: Преобразуем строку в множество: set(S).
Шаг 2: Множество содержит только уникальные символы: {'a','b','r','c','d'}.
Шаг 3: Длина множества len(set(S)) = 5.
Ответ: 5.
Лайфхак: set() автоматически удаляет дубликаты, не нужно писать цикл.
Топ-3 шортката, которые экономят время на экзамене
Шорткат 1: Используй set для проверки уникальности. Вместо того чтобы писать цикл с условием, просто преобразуй коллекцию в set. Например, чтобы узнать, есть ли повторяющиеся элементы в списке, сравни len(list) и len(set(list)). Если не равны — есть дубликаты.
Шорткат 2: Словарь для подсчёта частот одной строкой. Вместо if key in dict: dict[key] += 1 else: dict[key] = 1 используй dict.get(key, 0) + 1. Или collections.Counter — но на ЕГЭ его могут не дать, а get всегда работает.
Шорткат 3: Пересечение множеств для поиска общих элементов. Если нужно найти символы, которые встречаются в двух строках, напиши set(str1) & set(str2). Быстро и читаемо.
Эти шорткаты сокращают код в 2-3 раза и уменьшают шанс ошибки.
Даны две строки: s1 = 'hello', s2 = 'world'. Найдите символы, которые есть в обеих строках.
Шаг 1: set(s1) = {'h','e','l','o'}
Шаг 2: set(s2) = {'w','o','r','l','d'}
Шаг 3: пересечение: set(s1) & set(s2) = {'l','o'}
Ответ: {'l','o'}.
Лайфхак: оператор & делает то же, что и intersection().
Где обычно сливаются и как этого избежать
Самая частая ошибка — путают список и множество. В множестве нет порядка, нельзя обратиться по индексу. Если попытаешься сделать my_set[0] — получишь ошибку. Второе: забывают, что ключи словаря должны быть неизменяемыми (числа, строки, кортежи). Список ключом быть не может. Третье: при подсчёте частот через словарь забывают инициализировать счётчик для новых ключей — вылетает KeyError. Используй get или defaultdict.
Ещё одна ловушка: на ЕГЭ могут дать условие, где нужно использовать операции над множествами, но в задании не сказано «множество» — например, «найдите количество чисел, которые есть в обоих файлах». Если не догадаешься применить set, будешь писать циклы и терять время.
Как избежать: нарешай 10-15 задач на set и dict. Пойми, что set — это про уникальность и операции (|, &, -, ^). Dict — про ключи и быстрый доступ. И всегда проверяй тип данных.
Конкретный пример разбора задачи уровня ЕГЭ
Разберём задание 24 из демоверсии: «Текстовый файл состоит из символов A, B, C, D и E. Определите максимальное количество идущих подряд символов, среди которых ни один символ не повторяется.»
По сути, нужно найти самую длинную подстроку без повторяющихся символов. Классическая задача на скользящее окно с использованием set или dict.
Решение на Python:
with open('file.txt') as f:
s = f.read()
max_len = 0
start = 0
seen = set()
for end in range(len(s)):
while s[end] in seen:
seen.remove(s[start])
start += 1
seen.add(s[end])
max_len = max(max_len, end - start + 1)
print(max_len)
Объяснение: двигаем правую границу, если символ уже есть в seen — сдвигаем левую границу, удаляя символы из множества. Так мы поддерживаем окно без повторов. Множество позволяет быстро проверять наличие символа O(1).
Вариант со словарём: хранить последний индекс вхождения символа. Тогда при повторе сдвигаем start на max(start, last_index[s[end]] + 1). Это ещё быстрее.
На ЕГЭ дают файл до 10^6 символов, так что без set/dict не обойтись.
Как с этим помогает Наставник AI
Наставник AI — это не скучный учебник. Ты выбираешь персонажа, который тебе заходит. Витёк объясняет «по-братски»: «Слышь, set — это как тусовка, где каждый чувак уникальный. Если два одинаковых придут — один вылетит». Анна Сергеевна — строго по-советски: «Множество, молодой человек, это совокупность неповторяющихся элементов. Запомните раз и навсегда». Криштиану — как Месси на тренировке: «Set — это как защита: только уникальные игроки. Dict — как твой контракт: ключ — имя, значение — зарплата».
Ты говоришь голосом, он отвечает голосом. Можно прислать фото задачи — камера разберёт её голосом. Метод I-do/We-do/You-do: сначала он решает, потом вместе, потом ты сам. Если тупишь — подсказки, а не готовый ответ.
Геймификация: XP, уровни, стрики. Можно баттлиться с другом: кто быстрее решит квиз по теме. И всё это на телефоне, в любое время.
Цена: 995₽ за месяц = одна пицца
Репетитор по информатике стоит от 2000₽ за час. А Наставник AI — 995₽ в месяц за все 12 предметов. Это дешевле, чем пицца с доставкой. И ты можешь заниматься сколько хочешь: 30 уроков в тарифе Стандарт, а если нужно больше — Премиум за 2495₽ с голосом родителя или кумира.
Сейчас скидка 50% на старте — фиксируется навсегда. То есть будешь платить 995₽, даже если потом цена вырастет. Есть три бесплатных пробных урока без карты — просто попробуй.
Семейный кабинет: родитель видит отчёты, платит один раз за всех. Оплата через ЮKassa или Точка-Банк, всё по 152-ФЗ.
Частые вопросы
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.