ЕГЭ · Информатикаподготовка по заданиям
Задание 24 из 27Алгоритмы

Алгоритмы и программирование · 1 балл

Символьные строки

Обработка текста

Обработать строку или файл: посчитать символы, найти подстроку, заменить, разбить.

Алгоритмы целое число

Что проверяет

Обработка символьных данных: встроенные функции, подсчёт, разбиение, поиск и замена подстрок.

Основание: проект спецификации и кодификатора КИМ 2027. Открыть документы

Теория

Что нужно знать

Задание 24 — это программирование, а не ручной счёт. Почти всегда нужно прочитать одну длинную строку из файла и найти в ней подстроку с ограничением: без запрещённых букв, с заданным числом вхождений, с равным количеством двух символов или с определённой структурой. Ответ — одно число, но получить его без ошибок можно только аккуратной программой.

Минимум для задания 24

  • прочитать строку из файла и убрать перевод строки
  • понимать индексацию с нуля и срезы
  • применять len, count, find, replace, split и join
  • писать цикл по символам и по индексам
  • поддерживать счётчики и левую границу окна
  • отличать подстроку от подпоследовательности
  • проверять палиндром и группы символов
  • узнавать задачи на префиксные суммы
  • применять регулярные выражения для поиска и подсчёта вхождений
  • писать двойной цикл, когда условие сложно поддерживать окном
  • оценивать сложность при 10^6 символов
  • проверять границы среза и пустые строки

Файл и строка

В задании 24 данные лежат в текстовом файле. Чаще всего это одна очень длинная строка — до 10^6 символов. Читать её через input() нельзя: нужен файл. Для одной строки хватает readline(), для нескольких — read().splitlines().

  • s = open('24.txt').readline() читает первую строку вместе с переводом строки.
  • s = s.strip() убирает пробельные символы по краям; если важны пробелы в начале, используйте rstrip().
  • Для нескольких строк: lines = open('24.txt').read().splitlines().
  • Файл лучше открывать в блоке with, но на экзамене достаточно одной строки open(...).readline().
  • Размер 10^6 символов означает, что алгоритм должен быть линейным или близким к линейному.
s = open('24.txt').readline().strip()lines = open('24.txt').read().splitlines()n = len(s)

Индексация и срезы

Строка в Python — последовательность символов с нумерацией от нуля. Срез s[i:j] берёт символы с i до j, не включая j. Это главный источник ошибок: длина среза равна j − i, а последний индекс — j − 1.

  • s[0] — первый символ, s[-1] — последний.
  • s[i:j] — с i по j-1; s[:k] — первые k; s[i:] — до конца.
  • len(s[i:j]) = max(0, j - i).
  • s[::-1] — перевёрнутая строка; s[i:j:k] — с шагом k.
  • Для окна длины L, начинающегося в i: s[i:i+L]; последний старт — len(s)-L.
s[i:j] = s[i], …, s[j-1]len(s[i:j]) = j - iокно длины L: i от 0 до len(s)-L

Встроенные операции

Большую часть задания можно решить без ручных циклов, если правильно выбрать строковую операцию. Важно помнить, что count считает непересекающиеся вхождения, find возвращает -1 при отсутствии, а replace заменяет все вхождения.

  • len(s), s.count(x), s.find(x), s.rfind(x).
  • s.replace(a, b) — все вхождения; s.replace(a, b, k) — первые k.
  • s.split(sep) — список частей; s.split() — по любым пробелам.
  • sep.join(parts) — склеить список обратно.
  • x in s, s.startswith(x), s.endswith(x) — проверки.
  • count и replace не перекрывают вхождения: в 'AAA' строка 'AA' встречается один раз.
s.count(x) — число непересекающихся вхожденийs.find(x) → индекс или -1s.replace(x, y) → новая строка

Подстрока и подпоследовательность

Подстрока — это непрерывный кусок строки. Подпоследовательность — набор символов в порядке следования, но не обязательно подряд. В задании 24 чаще нужна подстрока; если в условии сказано «подпоследовательность», нельзя использовать срез s[i:j] и скользящее окно без учёта разрывов.

  • «идущих подряд» — подстрока, окно или срез.
  • «подпоследовательность» — можно пропускать символы, обычно нужен другой алгоритм.
  • «количество подстрок» — важно, считать ли вхождения с перекрытиями.
  • «длина подстроки» — ответ в символах, а не в количестве вхождений.
  • Проверьте по примерам из условия, что именно считается подстрокой.
подстрока: s[i:j]подпоследовательность: индексы i₁ < i₂ < …

Скользящее окно

Скользящее окно — основной приём для задач «максимальная длина при ограничении на количество символов». Правая граница добавляет символ, левая убирает, пока окно не станет допустимым. Каждый символ входит в окно и выходит из него не более одного раза, поэтому алгоритм линейный.

  • left = 0; для right от 0 до len(s)-1 добавляйте s[right].
  • Пока условие нарушено, вычитайте s[left] и увеличивайте left.
  • После восстановления условия обновляйте ответ: right - left + 1.
  • «Не более K» — цикл while count > K.
  • «Ровно K» — обновляйте ответ только при count == K, а окно держите не больше K.
  • «Не менее K» — обычно проще считать через префиксные суммы или хранить первое вхождение.
длина окна = right - left + 1амортизированно O(n): right и left двигаются только вперёд

Префиксные суммы

Если нужно сравнивать количества двух символов, удобно превратить строку в последовательность +1 и −1. Тогда равное количество означает одинаковую префиксную сумму. Самый длинный отрезок с равными количествами — это расстояние между первым и последним вхождением одного и того же значения префикса.

  • P[0] = 0; P[i+1] = P[i] + вес(s[i]).
  • Вес: +1 для одного символа, −1 для второго, 0 для остальных.
  • Храните первое вхождение каждого значения P в словаре.
  • Для отрезка i+1…j нужно P[i] == P[j]; длина = j - i.
  • Для «ровно K» ищите P[j] - P[i] == K, то есть P[i] == P[j] - K.
  • Для двух условий сразу используйте кортеж из двух префиксных сумм.
P[j] - P[i] = количество A − количество B на отрезкеравные количества: P[i] = P[j]ровно K: P[i] = P[j] - K

Группы и повторения

Иногда строка состоит из повторяющихся групп или блоков одинаковых символов. Тогда удобно сжать её в список пар (символ, количество) или идти по строке с состоянием — каким должен быть следующий символ.

  • Подряд идущие одинаковые символы собирайте в группы: 'AAABB' → [('A', 3), ('B', 2)].
  • Для группы WXYZ проверяйте, что следующий символ продолжает цикл: W→X→Y→Z→W.
  • Для RLE длина кодировки = сумма цифр в количествах + число групп.
  • Если группа может быть неполной в начале и конце, разрешите начать с любого символа шаблона.
  • Для «ровно N полных групп» делите длину цепочки на длину группы.
RLE: 'AAAB' → '3A1B' или '3AB'длина RLE = число групп + количество цифр в записях количествпозиция в шаблоне = i mod len(pattern)

Палиндромы

Палиндром читается одинаково в обе стороны. Проверка — s == s[::-1]. Для подсчёта палиндромов фиксированной длины переберите все окна; для самого длинного — расширяйте центр; для задачи о заменах — считайте нечётные частоты.

  • Проверка: s == s[::-1].
  • Палиндром чётной длины имеет центр между символами, нечётной — в символе.
  • Любой палиндром длины больше 3 содержит палиндром длины 2 или 3.
  • Для подсчёта окон длины L: for i in range(len(s)-L+1).
  • Чтобы собрать палиндром перестановками, нечётных частот должно быть не больше одной.
  • Минимальное число замен для палиндрома: количество нечётных частот // 2.
s == s[::-1]число окон длины L = len(s) - L + 1замены = odd // 2

Числа и слова в строке

Если строка содержит буквы и цифры, её удобно разбить на «слова» или «числа», заменив лишние символы пробелами. Затем split() отбрасывает пустые части, а int() или len() дают нужную величину.

  • Цифры: замените все нецифровые символы пробелами и вызовите split().
  • Слова: замените цифры пробелами; словом считается непрерывный блок букв.
  • Для максимального числа сравнивайте int(x), а не строки: '9' > '10' лексикографически.
  • Ведущие нули в IP-адресе недопустимы, хотя int('012') = 12.
  • Для IP делите по точкам и проверяйте 4 части, каждую в диапазоне 0…255.
  • Маску проверяйте посимвольно: '?' означает любую цифру.
replace для замены классов символовmax(map(int, parts))0 ≤ part ≤ 255, 4 части, без ведущих нулей

Регулярные выражения

Регулярное выражение — это шаблон, по которому ищут подстроки. В задании 24 оно помогает, когда нужно найти все числа, слова, пары «буква-цифра», арифметические выражения или пересекающиеся вхождения. Шаблон читается слева направо, а квантификаторы задают количество повторений.

  • import re; основные функции — re.findall, re.finditer, re.search и re.sub.
  • Классы: \d — цифра, \w — буква или цифра, [A-Z] — диапазон, [^0-9] — любой символ, кроме цифры.
  • Квантификаторы: + одно и более, * ноль и более, ? ноль или один, {m,n} от m до n повторов.
  • Жадные * и + захватывают максимум; ленивые *? и +? — минимум.
  • Группы (...) позволяют достать часть совпадения через m.group(1).
  • Для пересекающихся вхождений используйте lookahead: re.finditer(r'(?=(ABA))', s).
  • Для арифметического выражения подходит шаблон (\d+)([+*\-])(\d+); результат проверяйте по всем совпадениям.
  • Если совпадений нет, findall вернёт пустой список — обработайте этот случай отдельно.
re.findall(r'\d+', s) — все числаre.finditer(r'(?=(ABA))', s) — пересекающиеся вхожденияre.sub(r'[^0-9]', ' ', s) — заменить всё, кроме цифр

Сложность и проверка

При длине 10^6 квадратичный алгоритм может работать минуты. Считайте количество операций: один проход — хорошо, вложенный цикл по всем парам — плохо. Перед сдачей проверьте программу на короткой строке, где ответ можно посчитать вручную.

  • O(n) — один проход, окно, префиксные суммы; O(n²) — перебор всех пар границ.
  • Не вызывайте s.count() или s.find() внутри цикла по всем i без необходимости.
  • Проверьте пустую строку, строку из одного символа и случай без подходящих подстрок.
  • Проверьте границы среза: range(len(s)-L+1), а не range(len(s)-L).
  • Убедитесь, что ответ — целое число, как требует бланк.
  • Для отладки выведите длину строки и первые/последние символы.
n = 10^6: O(n) — норма, O(n²) — слишком долгоответ — одно целое число

Разбор примера

Учебный пример: равное количество A и B

Дана строка ABACBBACAA. Найдите максимальную длину подстроки, в которой букв A и B поровну. Покажем решение через префиксные суммы.

Префиксные суммы для строки ABACBBACAA
iСимволP[i]
0—0
1A1
2B0
3A1
4C1
5B0
6B−1
7A0
8C0
9A1
10A2
  1. Присвоим A вес +1, B вес −1, остальным символам 0.
  2. Посчитаем префиксные суммы P[0…10].
  3. Одинаковые значения P означают, что на отрезке между ними количество A и B совпало.
  4. P = 1 впервые встречается после символа 1, последний раз — после символа 9.
  5. Длина отрезка 9 − 1 = 8; это подстрока BACBBACA.
  6. Проверка: в ней три A и три B.

Ответ8

Способы решения

Выберите метод под формулировку

Методы собраны по решениям задания 24 из базы Kompege. Начните с того, что именно нужно найти в условии.

01

нет ни одной буквы из набора

Замена и split: запрещённые символы

Когда использовать: Нужно найти максимальный отрезок, в котором нет заданных символов, или разбить строку на допустимые блоки.

  1. Прочитайте строку и уберите перевод строки.
  2. Замените каждый запрещённый символ на пробел.
  3. Разбейте строку по пробелам через split().
  4. Возьмите max(len(part)) или min(len(part)) по непустым частям.
  • Заменять можно в цикле по набору запрещённых символов.
  • split() без аргумента делит по любым пробелам и убирает пустые части.
  • Если запрещена подстрока, а не символ, замените её на пробел целиком.
  • Для количества подходящих блоков используйте len(parts).

Пример

Строка ABCXAB, запрещены буквы A и B. Найдите длину самого длинного блока без запрещённых букв.

s = open('24.txt').readline().strip()
for ch in 'AB':
    s = s.replace(ch, ' ')
print(max(len(part) for part in s.split()))

ОтветПосле замены получится ' CX ', split() даст ['CX'], ответ 2.

По решениям № 11241, 16060–16062.

02

ограничение на число символов

Скользящее окно: не более и ровно K

Когда использовать: Нужно максимизировать длину подстроки при условии «не более K», «ровно K» или «не менее K» вхождений.

  1. Заведите left = 0 и счётчик нужных символов.
  2. Для right от 0 до len(s)-1 добавляйте s[right] в счётчик.
  3. Пока счётчик больше K, вычитайте s[left] и увеличивайте left.
  4. Обновляйте ответ длиной right - left + 1.
  • Для «не более K» окно всегда допустимо после цикла while.
  • Для «ровно K» обновляйте ответ только при count == K.
  • Для нескольких символов храните словарь счётчиков.
  • Для вхождений подстроки считайте непересекающиеся вхождения или используйте find с шагом.

Пример

Строка ABBCAABBC. Найдите максимальную длину подстроки, в которой не более двух букв B.

s = open('24.txt').readline().strip()
left = count = best = 0
for right in range(len(s)):
    if s[right] == 'B':
        count += 1
    while count > 2:
        if s[left] == 'B':
            count -= 1
        left += 1
    best = max(best, right - left + 1)
print(best)

ОтветДля ABBCAABBC подходят отрезки ABBCAA и CAABBC длины 6; ответ 6.

По решениям № 12771, 11918, 10105, 13715.

03

баланс, равное число A и B

Префиксные суммы: равные количества и разность

Когда использовать: Нужно найти самый длинный отрезок с равным количеством двух символов или с заданной разностью счётчиков.

  1. Присвойте одному символу +1, второму −1, остальным 0.
  2. Считайте текущую сумму P и сохраняйте первое вхождение каждого значения в словарь.
  3. Если значение уже встречалось, длина отрезка = текущий индекс − сохранённый индекс.
  4. Для «ровно K» ищите значение P - K.
  5. Для двух условий используйте кортеж из двух сумм.
  • Словарь first начинайте с {0: 0} — пустой префикс.
  • Сохраняйте именно первое вхождение, иначе отрезок будет короче.
  • Индексы в словаре — это количество символов до текущей позиции.
  • Для одной буквы и «ровно K» можно хранить префиксные количества.

Пример

Строка ABACBBACAA. Найдите максимальную длину подстроки с равным количеством A и B.

s = open('24.txt').readline().strip()
first = {0: 0}
balance = best = 0
for i, ch in enumerate(s, start=1):
    if ch == 'A':
        balance += 1
    elif ch == 'B':
        balance -= 1
    if balance in first:
        best = max(best, i - first[balance])
    else:
        first[balance] = i
print(best)

ОтветДля ABACBBACAA ответ 8: подстрока BACBBACA, в ней по три A и B.

По решениям № 10131, 14242.

04

одинаковые подряд, группы WXYZ

Группы, повторы и RLE

Когда использовать: Строка состоит из повторяющихся групп, нужно найти цепочку вида WXYZ…, максимальное число одинаковых подряд или посчитать сжатие.

  1. Сожмите строку в группы (символ, количество).
  2. Проверяйте соседние группы на нужный шаблон.
  3. Для периодического шаблона используйте состояние: какой символ должен идти следующим.
  4. Для RLE считайте длину кодировки и сравнивайте с исходной.
  • itertools.groupby упрощает сбор групп.
  • Для WXYZ допустим переход W→X→Y→Z→W.
  • В начале и конце группа может быть неполной — это разрешают отдельно.
  • При RLE количество из одной цифры занимает один символ; из 10 и более — два и больше.

Пример

Строка AAAABBBCCDAA. Найдите длину RLE-кодировки и экономию в битах, если каждый символ занимает 8 бит.

s = open('24.txt').readline().strip()
parts = []
i = 0
while i < len(s):
    j = i
    while j < len(s) and s[j] == s[i]:
        j += 1
    count = j - i
    parts.append((str(count) if count > 1 else '') + s[i])
    i = j
encoded = ''.join(parts)
print(len(encoded), (len(s) - len(encoded)) * 8)

ОтветAAAABBBCCDAA → 4A3B2CD2A: было 12 символов, стало 9; экономия (12 − 9) × 8 = 24 бита.

По решениям № 13028, 14514, 16349, 16590.

05

читается одинаково, замены букв

Палиндромы

Когда использовать: Нужно посчитать палиндромы заданной длины, найти самый длинный палиндром или минимальное число замен.

  1. Проверяйте палиндром сравнением s == s[::-1].
  2. Для фиксированной длины переберите все окна.
  3. Для самой длинной цепочки расширяйте центр в обе стороны.
  4. Для замен считайте количество символов с нечётной частотой.
  • Окон длины L ровно len(s) - L + 1.
  • Палиндром длины больше 3 содержит палиндром длины 2 или 3.
  • Для перестановок в палиндром допустим не более одного нечётного счётчика.
  • Минимальное число замен = odd // 2.

Пример

Строка ABACABA. Найдите длину самого длинного палиндрома и количество палиндромов длины 3.

s = open('24.txt').readline().strip()
best = 0
for center in range(len(s)):
    for left, right in ((center, center), (center, center + 1)):
        while left >= 0 and right < len(s) and s[left] == s[right]:
            best = max(best, right - left + 1)
            left -= 1
            right += 1
count3 = sum(s[i:i+3] == s[i:i+3][::-1] for i in range(len(s) - 2))
print(best, count3)

ОтветДля ABACABA самый длинный палиндром — вся строка, длина 7; палиндромов длины 3 три: ABA, ACA и ABA.

По решениям № 836, 1761, 6060, 3099.

06

цифры, буквы, маски

Числа, слова и IP-адреса

Когда использовать: Нужно найти максимальное или минимальное число, длину слова, количество слов или проверить IP-адрес.

  1. Для чисел замените все нецифровые символы пробелами и разбейте строку.
  2. Преобразуйте части в int и выберите max/min с нужным условием.
  3. Для слов замените цифры пробелами и ищите максимальную длину блока букв.
  4. Для IP делите по точкам и проверяйте 4 части и диапазон 0…255.
  • Сравнивайте числа как int, иначе '9' окажется больше '10'.
  • Ведущие нули в IP недопустимы, хотя int('012') = 12.
  • Пустые части после split() отбрасываются.
  • Для маски '?' проверяйте посимвольно.

Пример

Строка abc12x345y7. Найдите максимальное число и длину самого длинного слова.

s = open('24.txt').readline().strip()
digits = ''.join(ch if ch.isdigit() else ' ' for ch in s)
numbers = [int(x) for x in digits.split()]
letters = ''.join(ch if ch.isalpha() else ' ' for ch in s)
words = letters.split()
print(max(numbers), max(len(w) for w in words))

ОтветЧисла 12, 345 и 7; максимум 345. Слова abc, x, y; самое длинное — abc, длина 3.

По решениям № 318–324, 21319, 3399.

07

без повторов, без палиндромов

Два указателя и множество: уникальные символы

Когда использовать: Нужно найти максимальный отрезок без повторяющихся символов или без запрещённых коротких шаблонов.

  1. Держите left и множество символов текущего окна.
  2. Добавляйте s[right]; пока символ уже есть, удаляйте s[left] и двигайте left.
  3. После восстановления уникальности обновляйте длину.
  4. Для запрета палиндромов длины 2 и 3 проверяйте s[right] с s[right-1] и s[right-2].
  • Множество хранит только символы текущего окна.
  • Для «каждые два соседних различны» достаточно проверять s[right] != s[right-1].
  • Для запрета палиндромов длины больше 1 достаточно запретить длины 2 и 3.
  • Сдвигайте left на нужную позицию, а не на единицу, если так проще.

Пример

Строка ABCACBB. Найдите максимальную длину подстроки без повторяющихся букв.

s = open('24.txt').readline().strip()
left = best = 0
window = set()
for right, ch in enumerate(s):
    while ch in window:
        window.remove(s[left])
        left += 1
    window.add(ch)
    best = max(best, right - left + 1)
print(best)

ОтветДля ABCACBB максимальная длина без повторов — 3: ABC, BCA или ACB.

По решениям № 13606, 16012, 21.

08

шаблон вместо ручного цикла

Регулярные выражения

Когда использовать: Нужно найти все вхождения шаблона: числа, слова, пары символов, арифметические выражения или пересекающиеся подстроки.

  1. Импортируйте re и прочитайте строку.
  2. Опишите шаблон классами и квантификаторами.
  3. Для непересекающихся вхождений используйте re.findall или re.finditer.
  4. Для пересекающихся — оберните шаблон в lookahead (?=...).
  5. Если нужны части совпадения, добавьте группы и берите m.group(1).
  6. Проверьте жадность квантификаторов и пустой результат.
  • re.findall возвращает список строк или кортежей групп.
  • re.finditer возвращает объекты совпадений с позициями start() и end().
  • Шаблон r'\d+' найдёт все числа, включая многозначные.
  • Шаблон r'[A-Z]+' найдёт последовательности заглавных букв.
  • Для арифметического выражения берите nums = [int(x) for x in re.findall(r'\d+', m.group(0))].
  • Lookahead (?=...) не сдвигает позицию, поэтому находит перекрывающиеся вхождения.

Пример

Строка A12+B3*C2024D. Найдите все числа и количество пересекающихся вхождений ABA в строке ABABA.

import re

s = "A12+B3*C2024D"
nums = [int(x) for x in re.findall(r'\d+', s)]
overlap = len(re.findall(r'(?=ABA)', "ABABA"))
print(nums, max(nums), overlap)

ОтветЧисла [12, 3, 2024], максимум 2024; в ABABA два пересекающихся вхождения ABA (позиции 0 и 2).

По видео 2025 года, глава «Регулярные выражения».

09

когда условие сложно поддерживать окном

Двойной цикл

Когда использовать: Нужно перебрать все подстроки, а условие содержит несколько независимых счётчиков, порядок символов или запрет на конкретные сочетания.

  1. Для каждого left заведите пустые счётчики.
  2. Двигайте right вправо и обновляйте счётчики.
  3. Если условие нарушено, прервите внутренний цикл.
  4. Обновляйте лучшую длину right - left + 1.
  5. Проверьте сложность: O(n·L), где L — длина ответа.
  • Двойной цикл удобен, когда условие трудно сформулировать для скользящего окна.
  • Если ответ короткий, внутренний цикл быстро обрывается и решение проходит.
  • Для 10^6 символов и длинного ответа O(n²) может не уложиться в лимит — тогда нужно окно или префиксные суммы.
  • Счётчики можно хранить в dict или в массиве на 26 букв.
  • Для запрета двух одинаковых соседних символов проверяйте s[right] == s[right-1].

Пример

Строка AABACAA. Найдите максимальную длину подстроки, в которой не более двух букв A.

s = "AABACAA"
best = 0
for left in range(len(s)):
    count_a = 0
    for right in range(left, len(s)):
        if s[right] == 'A':
            count_a += 1
        if count_a > 2:
            break
        best = max(best, right - left + 1)
print(best)

ОтветПодходят ABAC и BACA длины 4; ответ 4.

По видео 2025 года, глава «Двойной цикл».

Шпаргалка: формулировка → метод

В условииЧто делать
«максимальная подстрока без букв из набора»заменить запрещённые буквы пробелами и взять max(len(part)) после split()
«не более K символов из набора»скользящее окно со счётчиком и while count > K
«ровно K вхождений»скользящее окно с обновлением при count == K или префиксные суммы
«равное количество A и B»префиксные суммы +1/−1 и первое вхождение каждого значения
«две независимые балансовые величины»кортеж из двух префиксных сумм как ключ словаря
«подстрока из повторяющихся групп»состояние или позиция i mod len(pattern)
«максимум одинаковых подряд»группы подряд идущих символов (RLE)
«палиндромы фиксированной длины»перебор окон и проверка s[i:i+L] == s[i:i+L][::-1]
«минимальные замены до палиндрома»количество нечётных частот // 2
«максимальное число или слово»заменить лишние символы пробелами, split() и max
«IP-адрес»split по точкам, 4 части, 0…255, без ведущих нулей
«нет повторяющихся букв»множество и два указателя
«нет палиндромов длины 2 и 3»проверять s[right] с s[right-1] и s[right-2]
«найти все числа, слова или пары по шаблону»регулярное выражение: re.findall или re.finditer
«пересекающиеся вхождения»lookahead в регулярном выражении или ручной сдвиг find
«сложное условие на подстроку»двойной цикл с break, если ответ короткий

По базе Kompege: 1 177 задач по заданию 24, 109 решений (98 программных и 11 текстовых) и 297 видеоразборов (178 YouTube, 85 VK, 34 Rutube). Для методов отобраны решения задач № 10131, 11241, 11918, 12771, 13028, 13606, 14242, 14514, 16012, 21319 и 3099; примеры переработаны в учебные.

Разборы из видео

Задачи, которые разбирают в курсе

Условия и код показаны в кадре в конце соответствующего фрагмента. Источники задач — КомпЕГЭ, сайт К. Полякова, ФИПИ и другие.

№ 4218

разбор из видео · 2025

Максимальная подстрока без PR и RP

Файл до 10^6 заглавных латинских букв. Найдите максимальное количество идущих подряд символов, среди которых нет соседних P и R в любом порядке.

s = open('24data/24-157.txt').readline()
m = 0
for l in range(len(s)):
    for r in range(l + m, len(s)):
        c = s[l:r + 1]
        if 'PR' not in c and 'RP' not in c:
            m = max(m, len(c))
        else:
            break
print(m)

Ответ2940

№ 2510

разбор из видео · 2025

Самая длинная цепочка из A, B и C

В файле цепочка из символов A, B, C, D, E. Найдите длину самой длинной подцепочки, состоящей из A, B и C в произвольном порядке.

from re import *

s = open('файлы к вебу/k7a-1.txt').readline()
reg = r'[ABC]+'
print(max(len(x.group()) for x in finditer(reg, s)))

Ответ16

№ 5155

разбор из видео · 2025

Максимум подряд идущих пар AA или CC

Строка из A, B и C. Найдите максимальное количество идущих подряд пар AA или CC; подстрока может содержать только AA, только CC или и те и другие.

from re import *

s = open('файлы к вебу/24-204.txt').readline()
reg = r'(AA|CC)+'
reg = rf'(?=({reg}))'
print(max(len(x.group(1)) // 2 for x in finditer(reg, s)))

Ответ1310

Полный архив

Все фрагменты видеоразборов

По одному пункту на каждую главу: условие или код из кадра, ответ и ссылка. Источники задач — КомпЕГЭ, сайт К. Полякова, ФИПИ и другие; номер берётся из кадра. Текст с экрана распознан автоматически, служебные строки и артефакты удалены; если текст нечитаем, остаются название, таймкод и ссылка.

Показать все фрагменты (82)
2025 · 00:00 Приветствие 2518

A (№ 4524) Текстовый файл 24-181 txt содержит строку из заглавных латинских букв и точек, & всего He более 10° символов. Определите максимальное количество идущих подряд символов, среди которых не более одной точки.

2025 · 02:45 Макс строка не содержит D

Кабанов) В текстовом файле k7a-4.txt находится цепочка из символов латинского. Найдите длину самой длинной подцепочки, не содержащей символа О.

for 1 in range(len(s)):
c = s[l:r+1]
if 'D' not in c:
t = max(m,len(c))
2025 · 14:10 Макс строка не содержит P и R рядом

(№ 6782) (ЕГЭ-2023) Текстовый файл 24-264 txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита и шифры. Определите максимальную „длину подстроки, в которой ни одна буква не стопт рядом с буквой п ни одна цифра не стоит

2025 · 17:20 Макс строка нет рядом двух букв/цифр 4218

(№ 4218) Текстовый файл 24-157.txt состоит не более чем из 10° символов и содержит только заглавные буквы латинского алфавита (A..Z). Определите максимальное количество идущих подряд символов, среди которых нет сочетания стоящих рядом букв Ри В (в любом порядке).

print(len(s))
for 1 in range(len(s)):
if 'PR' not in c and ‘RP’ not in c:
t = max(m, len(c))
print(m)
2025 · 23:15 Макс строка любые два соседних различны 2393

Текстовый файл состоит не более чем из 10° символов арабских цифр (0, 1,..). "Определите максимальное количество идущих подряд цифр, расположенных в неубывающем порядке.

2025 · 26:40 Макс строка цифры в неубывающем порядке 2393

Текстовый файл состоит не более чем из 10° символов арабских цифр (0, 1,.., 9). "Определите максимальное количество идущих подряд цифр, расположенных в неубывающем порядке.

for 1 in range(len(s)):
print(m)
2025 · 33:45 Макс строка буквы в алфавитном порядке 2422

Текстовый файл состоит не более чем из 10° символов Х, Y, 7. Определите максимальное количество идущих подряд символов, расположенных в алфавитном порядке (возможно с повторением символов).

for 1 in range(len(s)):
c = s[l:r+1]
m = max(m,len(c))
2025 · 36:10 Макс строка нет двух одинаковых троек символов подряд 4184

Джобс) Текстовый файл 24-173.txt состоит не более чем из 10° символов и содержит только заглавные буквы латинского алфавита (АВС...Z). Найдите максимальную длину подстроки, в которой ни одна тройка символов не записана два раза подряд. Например, в искомой подстроке не может быть фрагмента АВСАВС.

2025 · 42:10 Макс число пар ZX или ZY 4923

(№ 4923) Текстовый файл 24-196.txt содержит строку из заглавных латинских букв X, У и 7, всего не более чем из 10° символов. Определите максимальное количество идущих подряд

for 1 in range(ten(s)):
for r in range(1+m, Len(s)):
if Len(c)%2==
2025 · 47:05 Макс число пар AA или CC 5155

Джобс) Текстовый файл 24-204.txt содержит строку из заглавных латинских. букв А, В и С, всего не более чем из 106 символов. Найдите максимальное количество подряд идущих пар символов АА или СС. Искомая подстрока может включать только пары АА, только пары СС или содержать одновременно как пары АА, так и пары СС.

for 1 in range(len(s)):
if len(c)%2==0:
t = max(m,len(c))
print(m//2)
2025 · 49:30 Макс число пар буква+цифра

(№ 5391) Текстовый файл 24-21511 содержит строку из символов A, В, С ипифр 1, 2, 3, всего не более чем 106 символов. Определите максимальное количество идущих подряд. троек символов вида иифра + буква + иифра.

2025 · 53:30 Макс число троек цифра+буква+цифра

(№ 5391) Текстовый файл 24-215.151 содержит строку из символов А, В, С и цифр 1, 2, 3, всего не более чем 106 символов. Определите максимальное количество идущих подряд. троек символов вида шифра + буква + иифра.

for 1 in range(len(s)):
if Len(e)%:
print(m//3)
2025 · 55:40 Макс строка А не более 5 раз

(№ 5228) Текстовый файл 24-1.txt содержит только заглавные буквы латинского алфавита Определите максимальное количество идущих подряд символов, среди которых буква А встречается не более пяти раз.

for 1 in range(len(s)):
print(m)
2025 · 58:05 Макс строка Y не более 150 раз 6675

(№ 6675) (ЕГЭ-2023) Текстовый файл 24-263.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита. Определите максимальную длину подстроки, в которой символ У встречается не более 150 раз.

for 1 in range(len(s)):
if c.count('Y')<=150:
t = max(m, len(c))
2025 · 1:00:15 РЕКЛАМА ГОДОВОГО КУРСА

(№ 6675) (ЕГЭ-2023) Текстовый файл 24-263.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита. Определите максимальную длину подстроки, в которой символ У встречается не более 150 раз.

c = s[l:rt1]
if c.count('Y')<=150:
t = max(m, len(c))
2025 · 1:01:15 Макс строка X, Y, Z по 5 раз

(№ 7194) Текстовый файл 24-280.txt состоит не более чем из 10° символов и содержит только заглавные буквы латинского алфавита. Определите максимальное количество идущих подряд символов, среди которых буквы Х, У и 7. встречаются ровно по пять раз.

for r in range(1+m,len(s)):
c = s[lirt1]
if c.count('X')==5 and c.count('Y')==5 and c.count('Z')==5:
t = max(m,len(c))
elif c.count('X')>5 or c.count('Y')>5 or c.count('Z')>5:
print(m)
2025 · 1:06:35 Макс строка гласные не более 8 раз и нет V, X, Z 7202

(№ 7202) Текстовый файл 24-280.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита. Определите максимальное количество идущих подряд. символов, среди которых каждая из гласных букв (А, Е, I, О, U, У) встречается не более восьми раз, а буквы У, Х и Z не встречаются совсем.

for 1 in range(len(s)):
c = s[l:r+1]
t = max(m, len(c))
print(m)
2025 · 1:11:35 Макс строка не более 240 DE

(№ 7494) (ЕГЭ-2024) Текстовый файл 24-295.txt состоит не более чем из 106 символов и содержит только буквы латинского алфавита A, В, С, D, Е нЕ. Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых пара символов РЕ (в указанном порядке) встречается не более 240 раз.

c = s[l:rt1]
t = max(m,len(c))
2025 · 1:14:50 Мин строка ровно 7 точек

Кабанов) Текстовый файл 24-153.151 содержит строку из заглавных букв А, В, С, всего не более чем из 106 символов. АЕ-подстроками назовём последовательности "символов A, В, С, D, Е, F, ограниченные в начале символом A, а в конце символом F (граничные символы входят в подстроку). Определите минимальную длину АР-подстроки.

2025 · 1:19:20 Мин строка A...F

(№ 6674) (ЕГЭ-2023) Текстовый файл 24-263.txt состоит He более чем из 10° символов п содержит только заглавные буквы латинского алфавита. Определите минимальную длину подстроки, в которой символ 2 встречается не менее 120 раз.

2025 · 1:22:25 Мин строка Z не менее 120 раз

(№ 6676) (ЕГЭ-2023) Текстовый файл 24-264.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита и цифры. Определите максимальную длину подстроки, которая может являться записью числа в шестнадцатеричной системе

2025 · 1:29:15 Макс строка шестнадцатеричное число

(№ 8074) (Досрочный ЕГЭ-2025) Текстовый файл 24-334.txt состоит не более чем из 106 символов и содержит только десятичные цифры и заглавные буквы латинского алфавита. Определите в этом файле максимальное количество идущих подряд символов, которые могут представлять запись чётного числа в двенадцатеричной системе счисления. В этой записи "обозначены латинскими буквами, начиная с буквы А.

2025 · 1:33:20 Макс строка двенадцатеричное чётное число

Текстовый файл 24-334.txt состоит не более чем из 106 символов и содержит только десятичные цифры и заглавные буквы латинского алфавита. Определите в этом файле максимальное количество идущих подряд символов, которые могут представлять запись чётного числа в двенадцатеричной системе счисления. В этой записи отсутствуют незначащие (ведущие) нули. Цифры, числовое значение которых превышает 9, "обозначены латинскими буквами, начиная с буквы А.

2025 · 1:44:45 ПРОГРЕВ НА ИНТЕНСИВ

В этом фрагменте — теория или пояснение; решение показано в видео.

2025 · 1:47:20 Окончание и напутствия

(№ 8074) (Досрочный ЕГЭ-2025) Текстовый файл 24-334.txt состоит не более чем из 106 символов и содержит только десятичные цифры и заглавные буквы латинского алфавита. Определите в этом файле максимальное количество идущих подряд символов, которые могут представлять запись чётного числа в двенадцатеричной системе счисления. В этой записи "обозначены латинскими буквами, начиная с буквы А.

2025 · 00:00 Приветствие

A (№ 4524) Текстовый файл 24-181 txt содержит строку из заглавных латинских букв и точек, & всего He более 10° символов. Определите максимальное количество идущих подряд символов, среди которых не более одной точки.

2025 · 04:00 МОТИВАЦИЯ

В этом фрагменте — теория или пояснение; решение показано в видео.

2025 · 05:10 Регулярные выражения

В этом фрагменте — теория или пояснение; решение показано в видео.

2025 · 09:40 Модуль re в Python

В этом фрагменте — теория или пояснение; решение показано в видео.

2025 · 12:15 Квантификаторы и символьные классы

В этом фрагменте — теория или пояснение; решение показано в видео.

2025 · 17:25 Количество идущих подряд символов I 2510

Кабанов) В текстовом файле К7а-1.(х{ находится цепочка из символов латинского алфавита А, В, С, О, Е. Найдите длину самой длинной подцепочки, состоящей из символов А, В или С (в произвольном порядке).

2025 · 25:25 Скобочные группы и пересечения

Текстовый файл 24-196.txt содержит строку из заглавных латинских букв X, У и Z, ° всего не более чем из 106 символов. Определите максимальное количество идущих подряд. (№ 5327) (ЕГЭ-2022) Текстовый файл 24-212.txt содержит строку из набора А, В, С, D, О, _ всего He более чем из 10° символов. Опрелелите максимальное количество илуших полрял пар символов вида согласная - гласная.

2025 · 30:35 Количество подряд идущих пар I
from re import *
reg = r'(ZX|ZY)+'
2025 · 35:40 Количество подряд идущих пар II 5327

(№ 4923) Текстовый файл 24-196.txt содержит строку из заглавных латинских букв Х, Уи 7, всего не более чем из 10° символов. Определите максимальное количество идущих подряд.

from re import *
print(max(len(x.group())//2 for x in finditer(reg,s)))
2025 · 39:45 Перебор пересекающихся результатов I 5155

Джобс) Текстовый файл 24-204 txt содержит строку из заглавных латинских. букв А, В п С, всего не более чем из 10° символов. Найдите максимальное количество ААА CeCe СС подряд идущих пар символов АА или СС. Искомая подстрока может включать только пары о AA, только пары CC или содержать одновременно как пары AA, так и пары СС.

from re import *
reg = 1f°(2-(iregh))
2025 · 52:00 Перебор пересекающихся результатов II 5936

Джобс) Текстовый файл 24-239 txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита X, У и Z. Найдите максимальную длину подстроки, которая состопт из сочетаний XY, YZ, YZZ, записанных в произвольном порядке. В ответе "укажите наибольшую длину подходящей подстроки.

2025 · 55:30 Перебор пересекающихся результатов III 5936

Джобс) Текстовый файл 24-239.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита X, У и Z. Найдите максимальную длину подстроки, ® которая состоит из сочетаний ХУ, YZ, YZZ, записанных в произвольном порядке. В ответе "укажите наибольшую длину подходящей подстроки.

reg = rf'(?=({reg}))'
print(max(len(x.group(1)) for x in finditer(reg,s)))
2025 · 1:00:25 Арифметическое выражение I

(№ 7966) Текстовый файл 24-310.txt состоит не более чем из 10° символов и содержит только цифры шестнадцатеричной системы счисления, а также знаки + и * (сложения и умножения). Определите максимальное количество символов в непрерывной последовательности, которая является корректным арифметическим выражением с пелыми неотрипательными числами, записанными в троичной системе счисления. В этом выражении никакие два знака арифметических операций не стоят рядом, в записи чисел отсутствуют незначашие (ведущие) нули и число 0 не имеет знака.

2025 · 1:11:25 Арифметическое выражение II 7573

(№ 7573) (ЕГЭ-2024) Текстовый файл 24-299.txt состоит не более чем из 106 символов и содержит только десятичные пифры, а также знаки + и * (сложения и умножения). ® Определите максимальное количество символов в непрерывной последовательности, ® являющейся корректным арифметическим выражением с пелыми неотринательными " числами (без знака), значение которого равно нулю. В этом выражении никакие два знака" арифметических операций не стоят рядом, порядок действий определяется по правилам количество символов в найденном выражении.

2025 · 1:19:40 Арифметическое выражение, равное нулю 7573

(№ 7573) (ЕГЭ-2024) Текстовый файл 24-299.txt состоит не более чем из 106 символов 11 ь содержит только десятичные цифры, а также знаки + и * (сложения и умножения). Определите максимальное количество символов в непрерывной последовательности, являющейся корректным арифметическим выражением с пелыми неотрицательными T po as числами (без знака), значение которого равно нулю. В этом выражении никакие два знака арифметических операций не стоят рядом, порядок действий определяется по правилам математики. В записи чисел отсутствуют незначащие (ведущие) нули.

2025 · 1:38:10 Арифметическое выражение III 7786

(№ 7786) Текстовый файл 24-305.txt состоит не более чем из 10° символов и содержит только пифры шестнадцатеричной системы счисления, а также знаки + и * (сложения и умножения). Определите максимальное количество символов в непрерывной арифметическое выражение с целыми неотрицательными числами (без знака), записанными в десятичной системе счисления. В этом выражении никакие два знака арифметических операций не стоят рядом. В записи чисел отсутствуют незначашие (ведущие) нули. В ответе "укажите количество символов в найденном выражении.

from re import *
print(len(m), m)
2025 · 1:40:55 Окончание и напутствия

Текстовый файл 24-299.txt состоит He более чем из 106 символов 11 содержит только десятичные пифры, а также знаки + и * (сложения и умножения). Определите максимальное количество символов в непрерывной последовательности, о являющейся корректным арифметическим выражением с пелыми неотринательными ИГ ро РЗ числами (без знака), значение которого равно нулю. В этом выражении никакие два знака арифметических операций не стоят рядом, порядок действий определяется по правилам математики. В записи чисел отсутствуют незначащие (ведущие) нули.

2024 · 00:00 Приветствие

A (№ 4524) Текстовый файл 24-181 txt содержит строку из заглавных латинских букв и точек, & всего He более 10° символов. Определите максимальное количество идущих подряд символов, среди которых не более одной точки.

2024 · 02:30 Как читать строку из файла?

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 05:20 Запретные символы 1

Найдите длину самой длинной подцепочки, состоящей из символов А, С, О, F (в произвольном порядке).

2024 · 12:05 Запретные символы 2

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 19:15 Запретные символы 3 (много символов)

Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. Определите в прилагаемом файле максимальное количество идущих подряд символов, которые могут представлять запись числа в шестнадцатеричной системе Для выполнения этого задания следует написать программу. Цифры, числовое значение которых превышает 9, обозначены латинскими буквами,

2024 · 25:40 Запретные сочетания 1

Определите максимальное количество идущих подряд символов, среди которых нет сочетания 1 зар блинов отжондбчий con2hpy 1.0)

2024 · 33:15 Запретные сочетания 2

"Определите максимальное количество идущих подряд символов, среди которых нет сочетания

2024 · 38:50 Запретные сочетания 3 (с пересечениями)

Определите максимальное количество идущих подряд пар символов

2024 · 47:35 Подсчёт пар/троек 1

Определите максимальное количество идущих подряд пар символов

2024 · 52:30 Подсчёт пар/троек 2 9845

Текстовый файл состоит из символов, обозначающих буквы латинского алфавита А, Ви Си цифры 8 Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых ни одна буква не стоит рядом с буквой, а цифра — с цифрой. Для выполнения этого задания следует написать программу.

2024 · 58:30 Запретные сочетания 4

Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых символ А встречается не более 3 раз. Для выполнения этого задания следует написать программу.

2024 · 1:06:10 Разбиение по символу 1 (максимум)

Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых символ А встречается не более 3 раз. Для выполнения этого задания следует написать программу.

print(s.split())
print(s.split(' '))
fe = 'A'.join(s[i:i+4])
print(m)
2024 · 1:23:00 Разбиение по символу 2 (минимум)

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 1:34:35 Окончание и напутствия

Определите в прилагаемом файле минимальное количество идущих подряд символов, среди которых символ А встречается 35 раз. Для выполнения этого задания следует написать программу.

m = 10000 m=
print(m)
2024 · 00:00 Приветствие

A (№ 4524) Текстовый файл 24-181 txt содержит строку из заглавных латинских букв и точек, & всего He более 10° символов. Определите максимальное количество идущих подряд символов, среди которых не более одной точки.

2024 · 01:10 Как работает динамический подход?
t = [0]*len(s)
m[i] = m[i-1] +1
print(max(m)) a
2024 · 13:50 Сравнение соседних символов 1
m = [1]*len(s)
for i in range(1, len(s)):
if s[i]!=s[i-1]:
m[i] = m[1-1]+1
print(max(m))
2024 · 25:00 Сравнение соседних символов 2

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 30:00 Порядок возрастания/убывания 1

Определите максимальное количество идущих подряд символов, расположенных Для выполнения этого задания следует написать программу.

2024 · 41:30 Порядок возрастания/убывания 2

Определите максимальное количество идущих подряд символов, среди которых нет сочетания

2024 · 46:20 Запретное сочетание 1

Определите максимальное количество идущих подряд символов, среди которых нет сочетания

2024 · 50:40 Запретное сочетание 2

Определите максимальное количество идущих подряд пар символов

2024 · 58:20 Количество пар/троек 1

В этом фрагменте — теория или пояснение; решение показано в видео.

2024 · 1:06:55 Количество пар/троек 2

Джобс) Текстовый файл 24-204. txt содержит строку из заглавных латинских букв А, BC, всего не более чем из 10° символов. Найдите максимальное количество подряд идущих пар символов АА или СС. Искомая подстрока может включать только пары АА, только пары СС или содержать одновременно как пары АА, так и пары СС.

m = [0]*len(s)
for i in range(1, len(s)):
2024 · 1:15:10 Количество пар/троек 3 5392

Я (№ 5392) Текстовый файл 24-215.txt содержит строку из символов А, В, С и цифр 1, 2, 3, всего не 4 a более чем 10° символов. Определите максимальное количество идущих подряд троек символов вида

for i in range(2,len(s)):
if s[i-2]+s[i-1]+s[i]=='A1A':
2024 · 1:22:40 Ручной подбор строки 1

Кабанов) В текстовом файле k7b-1. txt находится цепочка из символов латинского a алфавита А, В, С, О, Е. Найдите максимальную длину цепочки вида EABEABEABE... (состоящей из фрагментов ЕДВ, последний фрагмент может быть неполным).

2024 · 1:26:40 Ручной подбор строки 2 12254

Текстовый файл состоит из символов В, $ и Q. В прилагаемом файле определите максимальное количество символов в непрерывной подпоследовательности, состоящей из идущих подряд групп символов RSQ в указанном порядке. При этом в начале и в конце искомой последовательности группа символов RSQ может быть неполной. Искомая подпоследовательность должна содержать не менее одной полной группы символов RSQ. Например, условию задачи удовлетворяют: Для выполнения этого задания следует написать программу.

2024 · 1:32:35 Окончание и напутствие 12254

Текстовый файл состоит из символов К, $ и 0. В прилагаемом файле определите максимальное количество символов в непрерывной подпоследовательности, состоящей из идущих подряд групп символов RSQ в указанном порядке. При этом в начале и в конце искомой последовательности группа символов RSQ может быть неполной. Искомая подпоследовательность должна содержать не менее одной полной группы символов RSQ. Например, условию задачи удовлетворяют: Для выполнения этого задания следует написать программу.

2024 · 00:00 Приветствие 4524

A (№ 4524) Текстовый файл 24-181 txt содержит строку из заглавных латинских букв и точек, & всего He более 10° символов. Определите максимальное количество идущих подряд символов, среди которых не более одной точки.

2024 · 02:40 Подстрока с одним точкой (max) 4524

Определите максимальное количество идущих подряд символов, среди которых не более одной точки.

if s[U]=='.':
t = max(m, r-1+1)
print(m)
2024 · 15:45 Подстрока с одним символом X и Y (max) 7193

(№ 7193) Текстовый файл 24-280.txt состоит не более чем из 106 символов 1 содержит только заглавные буквы латинского алфавита. Определите максимальное количество идущих подряд символов, среди которых буквы Х и У встречаются ровно по одному разу.

kx = ky = 0
for r in range(len(s)):
print(m)
2024 · 23:00 Подстрока, в которой не менее 120 Z (min) 6182

Статный) Текстовый файл 24-251 txt состоит не более чем из 106 символов и содержит только латинские заглавные буквы A...Z и десятичные пифры. Определите максимальную длину подстроки, которая ограничена с одной стороной буквой А, а с другой — ине содержит других букв А п D внутри.

2024 · 35:15 Подстрока, ограниченная A и D (max) 6053

Определите длину самой длинной пепочки символов, которая начинается и заканчивается буквой О, а между двумя последовательными буквами O содержит не более двух букв Е и произвольное количество других букв.

2024 · 43:50 Подстрока, ограниченная буквами O (max)

A (№ 4753) Текстовый файл 24-18 L txt содержит строку из заглавных латинских букв и точек, — Е всего не более 106 символов. Определите максимальное количество идущих подряд символов, среди которых нет гласных букв (символов A, Е, I, О, U, У).

2024 · 54:30 Нет гласных букв и не менее 6 точек (max) 4753

(№ 4753) Текстовый файл 24-181.1х{ содержит строку из заглавных латинских букв и точек, 1 Е всего не более 106 символов. Определите максимальное количество идущих подряд символов, среди которых нет гласных букв (символов А, Е, I, О, Ц, У), но есть не менее 6

if ERATE RAPIER EOP’
Lem=k=0
if s[r] in 'АЕТОЦУ':
if s[r]=='.':
t = max(m,r-1+1)
print(m)
2024 · 1:05:00 Сочетание 2024 повторяется не менее 4 раз (max) 5253

Шагитов) Текстовый файл 24-208.txt содержит строку из десятичных цифр, Г всего не более чем из 106 символов. Определите максимальное количество идущих подряд символов, среди которых комбинация символов 2022 повторяется не более четырёх раз.

k2022 = @
for r in range(3,len(s)):
k2022 += 1
k2022 -= 1
print(m)
2024 · 1:12:15 Подстрока по пять XYZ и без символов ABC (max) 6610

Шагитов) Текстовый файл 24-262.txt состоит не более чем из 10° символов 11 содержит только заглавные буквы латинского алфавита и цифры. Определите максимальную длину подпоследовательности, в которой комбинация символов "SOLO" встречается не более четырёх раз и присутствуют как минимум 5 различных пифр.

2024 · 1:19:15 Сочетание SOLO не более 4 раз и как минимум 5 различных цифр 6610

Шагитов) Текстовый файл 24-262.txt состоит не более чем из 10° символов 11 & содержит только заглавные буквы латинского алфавита и цифры. Определите максимальную длину подпоследовательности, в которой комбинация символов "SOLO" встречается не более четырёх раз и присутствуют как минимум 5 различных цифр.

while ksolo>4:
print(m)
2024 · 1:30:50 Подстрока со всеми шестнадцатеричными цифрами (min)

Найдите минимальную длину подстроки, содержащей все шестнадцатеричные цифры. Строка может включать повторяющиеся цифры и другие символы. В ответе укажите найденную длину.

m = 10000
d = {x:@ for x in '0123456789ABCDEF'}
while all(d[x]>@ for x in '0123456789ABCDEF' ):
if all(d[x]>0 for x in '0123456789ABCDEF'):
m = min(m,r-1+1)
print(m)
2024 · 1:39:50 Окончание и напутствия 6099

Богданов) Текстовый файл 24-249.txt состоит не более чем из 106 символов и Е содержит только десятичные пифры и заглавные буквы латинского алфавита. Найдите минимальную длину подстроки, содержащей все шестнадцатеричные цифры. Строка может включать повторяющиеся пифры и другие символы. В ответе укажите найденную длину.

m = 10000
d = {x:@ for x in '0123456789ABCDEF'}
while all(d[x]>@ for x in '0123456789ABCDEF'):
if all(d[x]>0 for x in '0123456789ABCDEF'):
m = min(m,r-1+1)
print(m)

Типичные ошибки

  • пробелы и переводы строк
  • регистр
  • индексация
  • счётчик не сбрасывается

Практика

Навигатор и методические рекомендации опубликованы в 2026 году: номера заданий в них могут отличаться от нумерации 2027 года. Ориентируйтесь на тему.