Задание 24. Программирование. Обработка строк. ЕГЭ 2026 по информатике
Средний процент выполнения: 7%
Ответом к заданию 24 по информатике может быть развернутый ответ (полная запись решения с обоснованием выполненных действий).
Алгоритм решения задания 24:
- Внимательно прочитай условие и определи, какие данные являются входными (строка, символы, длина).
- Выясни, что требуется получить на выходе (подсчёт, замена, поиск, формирование новой строки).
- Выбери способ перебора строки (по индексам или по символам).
- Определи переменные для хранения строки, счётчиков и результата.
- Составь цикл обработки символов строки.
- Внутри цикла реализуй проверку условий и нужные действия с символами.
- После завершения цикла выведи результат.
- Проверь программу на простых тестовых строках.
- Запиши окончательный вариант программы в требуемом формате.
Подпишись на суперполезные материалы
Задачи для практики
Задача 1
ЕГКР 2025
Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых буква F встречается ровно 76 раз, чётная цифра встречается ровно один раз, искомая последовательность начинается с этой единственной чётной цифры. В ответе запишите число - количество символов в найденной последовательности. Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
with open('24 егкр.txt') as f:
s = f.read().strip()
even_digits = set('02468')
n = len(s)
max_len = 0
for i in range(n):
# последовательность должна начинаться с чётной цифры
if s[i] not in even_digits:
continue
count_F = 0
count_even = 1 # первая чётная цифра уже есть
for j in range(i + 1, n):
if s[j] in even_digits:
count_even += 1
if s[j] == 'F':
count_F += 1
# нарушили условия — дальше смысла нет
if count_even > 1 or count_F > 76:
break
# ровно 76 букв F
if count_F == 76:
max_len = max(max_len, j - i + 1)
print(max_len)
Ответ: 163
Задача 2
В ЕГЭ ЗАДАНИЕ №17
В файле содержится последовательность натуральных чисел. Её элементы могут принимать целые значения от 1 до 100000 включительно.
Требуется:
- Определить количество пар последовательности, в которых сумма элементов больше 1000.
- В ответе записать количество найденных пар, затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
В ответе числа указывать без разделителей
Решение
Напишем код на Python исходя из условия задачи
f = open("17.txt").readlines()
c = 0
m = 0
for i in range(len(f)-1):
a = int(f[i])
b = int(f[i+1])
if a + b > 1000:
c += 1
if a + b > m:
m = a + b
print(c, m)
f.close()
Ответ: 196819184
Задача 3
Необходимо предоставить решение и ответ
Текстовый файл состоит из символов, обозначающих знаки +, -, * и / и цифры 1, 2, 3, 4, 5, 6, 7, 8, 9. Определите в файле максимальное количество идущих подряд символов, которые образуют корректную математическую последовательность по следующим правилам: последовательность может содержать только знаки +, -, * и / и натуральные числа без ведущих нулей, последовательность не должна начинаться с оператора, два оператора подряд не допускаются, последовательность может быть любой длины, но должна быть корректной с точки зрения простого синтаксиса (цифра → оператор → цифра → …). В ответе запишите одно число — длину найденной максимальной последовательности.
Решение
import re
# Читаем файл
f = open('24.txt').read().strip()
# Регулярное выражение для корректной последовательности
s = r'[1-9]+(?:[+\-*/][1-9]+)*'
# Ищем все совпадения
m = re.findall(s, f)
# Находим максимальную длину
max_len = max(len(i) for i in m)
print(max_len)
Ответ: 155
Задача 4
С наступающим Новым годом! 🎅
Текстовый файл содержит зашифрованное письмо дедушке Морозу🎅, состоящее только из символов T, U, V, W, X, Y и Z, с просьбой о подарке. Какой подарок хочет ребенок зависит от максимального количества идущих подряд символов письма, в котором символ T встречается ровно 100 раз. Текст письма находится в прилагаемом файле. Помогите дедушке расшифровать послание, определите данное максимальное значение. Для выполнения этого задания следует написать программу.
Решение
Напишем программу на Python
f = open('24_Новый год.txt').readline()
maxi = 0
for st in range(len(f)):
for r in range(st + maxi, len(f)+1):
s = f[st:r]
t = s.count('T')
if t > 100:
break
if t == 100:
maxi = max(len(s), maxi)
print(maxi)
Получим ответ: 133
Задача 5
В ЕГЭ ЗАДАНИЕ №17
В файле содержится последовательность целых чисел. Элементы принимают целые значения от -10000 до 10000 включительно. Определите и запишите в ответе два значения:
1) Количество пар элементов последовательности, в которых произведение чисел оканчивается на 12
2)Максимальную сумму двух элементов в паре среди всех таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
В качестве ответа запишите сначала количество, а потом максимальное число без пробелов и разделителей. Если один из ответов отрицательный, записать его по модулю. Например, если количество чисел 99, а максимум -1234, то ответ 991234.
Решение
f = open("fileotr10.txt")
kol = 0
Max = -20000
pred = -10001
for x in f:
x = int(x)
if pred != -10001:
if abs(x * pred) % 100 == 12:
kol += 1
if x+pred> Max:
Max = x+pred
pred = x
print(kol, Max)
Количество: 83, сумма: 18553.
Ответ: 8318553
Задача 6
Текстовый файл состоит из десятеричных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле последовательность из максимального количества идущих подряд символов, среди которых ровно 42 букв A, начинающуюся нечётной цифрой, не содержащую других нечётных цифр, кроме первой. В ответе запишите одно число — количество символов в найденной последовательности. Для выполнения этого задания следует написать программу.
Решение
f = open('24.txt').read()
for i in '13579':
f = f.replace(i, '1')
maxi = 1
for st in range(len(f)):
for en in range(st + maxi, len(f)+1):
s = f[st:en]
if s.count("A") > 42 or \
s[0] != '1' or s.count('1') > 1:
break
if s.count("A") == 42 and \
s[0] == '1' and s.count('1') == 1:
maxi = max(len(s), maxi)
print(maxi)
Ответ 197
Задача 7
Текстовый файл состоит из символов A, B и C. Определите максимальную длину последовательности, которая начинается и заканчивается комбинацией 'BC' и не содержит внутри других вхождений 'BC'
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('abc.txt')
s = f.readline()
bc_f = 0
length = 0
max_length = 0
i = 0
d = ''
while i < len(s) - 1:
if s[i] == 'B' and s[i + 1] == 'C' and 'BC' not in d:
length += 2
d += s[i] + s[i + 1]
i += 2
bc_f = 1
elif s[i] == 'B' and s[i + 1] == 'C':
max_length = max(max_length, length + 2)
length = 2
i += 2
d = 'BC'
elif 'BC' in d:
length += 1
d += s[i]
i += 1
else:
i += 1
print(max_length)
Ответ: 98
Задача 8
Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в этом файле последовательность идущих подряд символов, представляющих собой запись максимального чётного 14-ричного числа. В ответе запишите количество символов (значащих цифр в записи числа) в этой последовательности. Примечание. Латинские буквы A, B, C и D означают цифры из алфавита 14-ричной системы счисления.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
import re
with open('24 ов.txt') as f:
s = f.read().strip()
pattern = r'[1-9ABCD][0-9ABCD]+[02468AC]'
matches = re.findall(pattern, s)
print(max(len(m) for m in matches))
Ответ: 2598
Задача 9
Текстовый файл состоит из символов A, B, C и D. Определите максимальное количество идущих подряд символов, среди которых нет трех символов A, стоящих рядом.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('abcd.txt')
s = f.readline()
max_len = 0
length = 2
for i in range(2, len(s)):
if s[i - 2] + s[i - 1] + s[i] == 'AAA':
max_len = max(length, max_len)
length = 2
else:
length += 1
print(max_len)
Ответ: 805
Задача 10
Текстовый файл состоит из заглавных букв латинского алфавита. Определите максимальную длину последовательности, которая начинается и заканчивается одинаковой гласной буквой (A, E, I, O, U, Y) и не содержит никаких гласных букв внутри такой последовательности
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24.txt').readline()
vowel_letter = ['A', 'E', 'I', 'O', 'U', 'Y']
max_len = 0
cur_len = 0
fl = ''
cur_len = 0
for letter in f:
if letter not in vowel_letter and fl != '':
cur_len += 1
else:
if fl == '':
fl = letter
cur_len += 1
elif letter != fl:
fl = letter
cur_len = 1
else:
cur_len += 1
max_len = max(cur_len, max_len)
cur_len = 0
print(max_len)
Ответ: 41
Задача 11
Текстовый файл состоит из символов, обозначающих прописные буквы латинского алфавита.
Определите максимальное количество идущих подряд символов, среди которых никакие две буквы из набора букв E, F, G и H (с учетом повторений) не записаны подряд.
Для выполнения этого задания следует написать программу.
Решение
f = open('1_24.txt', 'r')
s = f.readline().strip()
for x in 'EFGH':
s = s.replace(x, '1')
while '11' in s:
s = s.replace('11', '1 1')
lines = s.split()
print(len(max(lines, key=len)))
Задача 12
Текстовый файл состоит из символов, обозначающих прописные буквы латинского алфавита.
Определите максимальное количество идущих подряд символов, среди которых никакие две буквы из набора букв M, I, S, H, и A (с учетом повторений) не записаны подряд.
Для выполнения этого задания следует написать программу.
Решение
f = open('new_24.txt', 'r')
s = f.readline().strip()
for x in 'MISHA':
s = s.replace(x, '1')
while '11' in s:
s = s.replace('11', '1 1')
lines = s.split()
print(len(max(lines, key=len)))
Задача 13
Текстовый файл состоит из символов A, B и D.
Определите самую длинную последовательность символов в которой нет символа D. В ответе запишите количество символов в такой последовательности.
Искомая подпоследовательность должна состоять только из символов А или B.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
max_s = 0
k = 0
for i in range(len(s)):
if s[i] != 'D':
k += 1
max_s = max(k, max_s)
else:
k = 0
print(max_s)
Другой способ решения:
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
s = s.replace('D', ' ')
x = s.split()
print(len(max(x, key=len)))
Ответ: 42
Задача 14
Текстовый файл состоит из символов A, B и D.
Определите максимальное количество идущих подряд троек символов ABD или ADB в прилагаемом файле.
Искомая подпоследовательность должна состоять только из троек ABD, или только из троек ADB, или только из троек ABD и ADB в произвольном порядке следования этих троек.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
s = s.replace('ABD', '1')
s = s.replace('ADB', '2')
s = s.replace('A', ' ')
s = s.replace('B', ' ')
s = s.replace('D', ' ')
x = s.split()
print(len(max(x, key=len)))
Другой способ решения:
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
max_s = 0
i = 0
k = 0
while i < len(s) - 2:
s1 = s[i]
s2 = s[i + 1]
s3 = s[i + 2]
if s1 + s2 + s3 == 'ABD' or s1 + s2 + s3 == 'ADB':
k += 1
i += 3
max_s = max(max_s, k)
else:
i += 1
k = 0
print(max_s)
Ответ: 5
Задача 15
Текстовый файл состоит из символов A, B, C и D.
Определите максимальное количество идущих подряд символов таких, что среди них встречаются BD или BA и ровно 5 символов C.
Искомая подпоследовательность должна состоять только из пар BA, или только из пар BD, или только из пар BD и BA и ровно 5 символов С в произвольном порядке следования этих символов.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_ABCD.txt', 'r')
s = f.readline().strip()
max_len = 0
new_s = ''
i = 0
while i < len(s) - 1:
if s[i] == 'C':
new_s += 'C'
i += 1
elif s[i] + s[i + 1] == 'BA':
new_s += 'BA'
i += 2
elif s[i] + s[i + 1] == 'BD':
new_s += 'BD'
i += 2
elif s[i] in 'ABD':
new_s = ''
i += 1
if new_s.count('C') == 5:
max_len = max(max_len, len(new_s))
elif new_s.count('C') > 5:
new_s = new_s[new_s.index('C') + 1:]
print(max_len)
Ответ: 17
Задача 16
Текстовый файл состоит из символов A, B и D.
Определите каких пар символов BD или BA больше в прилагаемом файле.
В ответе укажите количество таких пар и саму пару, без пробелов. Например: 143BD
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_4.txt', 'r')
s = f.readline().strip()
bd = s.count('BD')
ba = s.count('BA')
if bd > ba:
print(f'{bd}BD')
else:
print(f'{ba}BA')
Ответ: 1025593BD
Задача 17
Текстовый файл состоит из символов A, B и D.
Определите максимальное количество символов последовательности в прилагаемом файле, среди которых нет пар символов BD или среди которых нет пар BA. только один вид из этих пар может присутствовать в подпоследовательности.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
s1 = s.replace('BD', 'B D')
s2 = s.replace('BA', 'B A')
x = s1.split()
y = s1.split()
max_not_bd = len(max(x, key=len))
max_not_ba = len(max(y, key=len))
print(max(max_not_ba, max_not_bd))
Другой способ решения
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
max_len = 0
cur_len_notBA = 1
cur_len_notBD = 1
for i in range(len(s) - 1):
if s[i] == 'B' and s[i + 1] == 'A':
cur_len_notBA = 1
cur_len_notBD += 1
elif s[i] == 'B' and s[i + 1] == 'D':
cur_len_notBA += 1
cur_len_notBD = 1
else:
cur_len_notBA += 1
cur_len_notBD += 1
max_len = max(max_len, cur_len_notBA, cur_len_notBD)
print(max_len)
Ответ: 96
Задача 18
Текстовый файл состоит из символов A, B и D.
Определите самую длинную последовательность символов в которой нет символа B. В ответе запишите количество символов в такой последовательности.
Искомая подпоследовательность должна состоять только из символов А или D.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
max_s = 0
k = 0
for i in range(len(s)):
if s[i] != 'B':
k += 1
max_s = max(k, max_s)
else:
k = 0
print(max_s)
Другой способ решения:
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
s = s.replace('B', ' ')
x = s.split()
print(len(max(x, key=len)))
Ответ: 12
Задача 19
Текстовый файл состоит из символов A, B и D.
Определите максимальное количество идущих подряд пар символов BD или BA в прилагаемом файле.
Искомая подпоследовательность должна состоять только из пар BA, или только из пар BD, или только из пар BD и BA в произвольном порядке следования этих пар.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24.txt', 'r')
s = f.readline().strip()
s = s.replace('BD', '1')
s = s.replace('BA', '2')
s = s.replace('A', ' ')
s = s.replace('B', ' ')
s = s.replace('D', ' ')
x = s.split()
print(len(max(x, key=len)))
Ответ: 64
Задача 20
РЕШЕНИЕ БЕЗ ОТВЕТА НЕ ПРИНИМАЕТСЯ, В ПРОТИВНОМ СЛУЧАЕ РАБОТА БУДЕТ АННУЛИРОВАНА
Текстовый файл состоит из символов A, B и D.
Определите максимальное количество идущих подряд троек символов BDA или BAD в прилагаемом файле.
Искомая подпоследовательность должна состоять только из троек BDA, или только из троек BAD, или только из троек BDA и BAD в произвольном порядке следования этих троек.
Для выполнения этого задания следует написать программу.
Решение
Для решения этого номера нужно написать программу, приведём пример решения на языке Python
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
s = s.replace('BAD', '1')
s = s.replace('BDA', '2')
s = s.replace('A', ' ')
s = s.replace('B', ' ')
s = s.replace('D', ' ')
x = s.split()
print(len(max(x, key=len)))
Другой способ решения:
f = open('24_ABD.txt', 'r')
s = f.readline().strip()
max_s = 0
i = 0
k = 0
while i < len(s) - 2:
s1 = s[i]
s2 = s[i + 1]
s3 = s[i + 2]
if s1 + s2 + s3 == 'BDA' or s1 + s2 + s3 == 'BAD':
k += 1
i += 3
max_s = max(max_s, k)
else:
i += 1
k = 0
print(max_s)
Ответ: 5
Рекомендуемые курсы подготовки
- Узнаешь как кодируется изображение
- Поймешь как решать 7 номер ЕГЭ
- Разберешься с паролями
- Потренируешь 11 и 4 номер ЕГЭ
на бесплатном курсе Турбо ЕГЭ