Строки и текст на ЕГЭ: как сдать без репетитора за 995 рублей
Строки и работа с текстом — одна из самых частых тем в ЕГЭ по информатике. На экзамене она встречается в заданиях 1, 2, 7, 8, 10, 12, 17, 24, 25. По факту, если ты умеешь обращаться со строками, ты закрываешь треть всех баллов.
Но в школе объясняют нудно: «String — это последовательность символов». А на экзамене нужно быстро решать задачи с индексами, срезами, подсчётом символов и регулярками. Репетитор берёт 2000 рублей за час — это дорого. Мы сделали сервис, где за 995 рублей в месяц (цена одной пиццы) ты получаешь 30 уроков по всем 12 предметам, а объясняют персонажи, которые тебе заходят: Витёк, Криштиану, Анна Сергеевна, кот Барсик и другие.
Здесь нет воды. Только конкретика: что проверяют, какие шорткаты юзать, где сливаются баллы и как сдать дёшево.
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.
Что реально проверяют на ЕГЭ по строкам
Задания со строками делятся на несколько типов.
Первое — индексация и срезы. Тебе дают строку, просят получить подстроку по индексам. Например: s = 'abcdef', s[1:4] — это 'bcd'. Важно помнить, что индексация с нуля, и срез не включает последний элемент.
Второе — методы строк. split() разбивает строку по разделителю, join() собирает список в строку, replace() заменяет подстроку, upper/lower — регистр. В задании 2 часто просят посчитать количество слов — используй split() по пробелу.
Третье — подсчёт символов. Нужно посчитать, сколько раз встречается буква, или найти длину самой длинной последовательности. Тут пригодятся циклы и счётчики.
Четвёртое — регулярные выражения (база). В ЕГЭ с 2021 года есть задания на поиск по шаблону. Например, найти все слова, начинающиеся с заглавной буквы. Библиотека re в Python: findall, search, match.
Пятое — работа с файлами. Текст может быть в файле, нужно открыть, прочитать, обработать. Типовое задание 24: найти максимальную длину последовательности из одинаковых символов.
Пример задания 24: В файле записана строка из символов 'A', 'B', 'C'. Найдите максимальную длину подстроки, состоящей только из символа 'A'.
with open('24.txt') as f:
s = f.readline()
max_len = 0
current = 0
for ch in s:
if ch == 'A':
current += 1
if current > max_len:
max_len = current
else:
current = 0
print(max_len)
Топ-3 шортката, которые экономят время
Шорткат 1: используй split() для подсчёта слов. Вместо цикла по символам просто напиши len(s.split()). Это работает для любого разделителя.
Шорткат 2: срезы с шагом. s[::-1] переворачивает строку. Это быстрее, чем цикл.
Шорткат 3: регулярки для поиска по шаблону. Вместо сложных условий используй re.findall(r'[A-Z][a-z]+', s) — найдёт все слова с заглавной буквы. Экономит 5-10 строк кода.
Дана строка: 'Hello world! Python is cool.'. Найти все слова, начинающиеся с заглавной буквы.
import re
s = 'Hello world! Python is cool.'
words = re.findall(r'\b[A-Z][a-z]*\b', s)
print(words) # ['Hello', 'Python']
Где обычно сливаются и как этого избежать
Ошибка 1: путают индексы. В срезе s[a:b] последний не включается. Запомни: начальный включается, конечный — нет.
Ошибка 2: забывают про пробелы. split() без аргумента делит по любым пробельным символам, но если нужно по конкретному разделителю — укажи его.
Ошибка 3: не учитывают регистр. 'A' и 'a' — разные символы. Если нужно считать без учёта регистра, приведи строку к одному регистру через lower() или upper().
Ошибка 4: регулярки без экранирования. Спецсимволы (., *, +) нужно экранировать обратным слешем, если ищешь их как текст.
Как избежать: пиши код на черновике, проверяй на маленьком примере. И не бойся использовать встроенные методы — они оптимизированы.
Разбор задачи уровня ЕГЭ с полным решением
Задача: В файле 24.txt записана строка из символов 'A', 'B', 'C'. Определите максимальную длину подстроки, в которой символы 'A' и 'B' не встречаются рядом (т.е. нет подстрок 'AB' или 'BA').
Решение:
1. Открыть файл, прочитать строку.
2. Пройти по строке, отслеживая длину текущей «хорошей» подстроки.
3. Если встретили 'A' и следующий символ 'B' (или наоборот), то текущая подстрока заканчивается, начинаем новую.
4. Обновляем максимум.
Код:
with open('24.txt') as f:
s = f.readline()
max_len = 0
cur = 0
for i in range(len(s)-1):
if (s[i]=='A' and s[i+1]=='B') or (s[i]=='B' and s[i+1]=='A'):
cur = 0
else:
cur += 1
if cur > max_len:
max_len = cur
print(max_len+1) # +1, потому что длина на 1 больше количества шагов
Пояснение: мы считаем количество пар, которые не нарушают условие. Если пара не нарушает, увеличиваем счётчик. В конце добавляем 1, чтобы получить длину подстроки.
Как с этим помогает Наставник AI
Ты выбираешь персонажа, который тебе ближе. Хочешь по-братски — Витёк скажет: «Слышь, смотри сюда: split() делит строку на части, как я пиццу на куски. Если не указать разделитель, он по пробелам режет. Запомнил?». Хочешь по-советски — Анна Сергеевна строго объяснит: «Товарищ, индексация начинается с нуля. Запомните это как дважды два — четыре». А если хочешь как на тренировке — Криштиану скажет: «Работай, как я на поле: быстро и эффективно. Срез [::2] — каждый второй символ. Используй это, чтобы выиграть время».
Ты говоришь голосом — персонаж отвечает голосом. Разбираешь задачу с фото — камера сканирует, и он объясняет. И никаких скучных лекций — только диалог.
Плюс геймификация: XP, уровни, баттлы с друзьями, дневные челленджи. Не хочешь учиться — превращаем в игру.
Цена: 995 рублей за месяц vs репетитор 2000/час
Репетитор по информатике берёт от 1500 до 3000 рублей за час. Одно занятие — и деньги кончились. У нас 995 рублей в месяц — это 30 уроков по всем 12 предметам. Одна пицца. Причём ты можешь заниматься с любым персонажем, переключаться, задавать вопросы голосом, получать разборы задач с фото.
На старте скидка 50% — фиксируется навсегда. Три пробных урока бесплатно, без карты. Попробуй — не понравится, отпишешься.
Сравни: 1 час репетитора = 2000 руб. 1 месяц Наставника = 995 руб. За месяц ты можешь прорешать 30 задач, пройти всю тему строк и ещё 11 предметов. Экономия очевидна.
Частые вопросы
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.