Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле последовательность из максимального количества идущих подряд одинаковых букв, начинающуюся и заканчивающуюся чётной цифрой, не содержащую других букв, кроме повторяющихся, не содержащую цифр, кроме первой и последней. В ответе запишите число — количество символов в найденной последовательности.
Для выполнения этого задания следует написать программу.
Ответ:
Резервный день 19.06.2025 ЕГЭ по информатике – задание №24
Решение:
решение от Алексея Кабанова
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
s = open('ege-inf-rezerv-19062025-q24.txt').readline() for c in '2468': s = s.replace(c, '0') for c in '3579': s = s.replace(c, '1') m = 2 for l in range(len(s)): for r in range(l + m, len(s)): c = s[l:r] if c[0] != '0' or c.count('0') + c.count('1') > 2 or len(set(c)) > 2: break if c[0] == c[-1] == '0' and len(set(c)) == 2 and '1' not in set(c): m = max(m, len(c)) if l % 100_000 == 0: print(l, len(s), m) print(m) |
ИЛИ
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# coding: utf-8 s = open('ege-inf-rezerv-19062025-q24.txt', encoding='utf-8').readline().strip() even = set('02468') letters = set('ABCDEFGHIJKLMNOPQRSTUVWXYZ') ans = 0 i = 0 n = len(s) while i < n: # ищем левую чётную границу if s[i] in even and i+1 < n and s[i+1] in letters: j = i + 1 ch = s[j] # буква, которая должна повторяться # двигаемся, пока идут только одинаковые буквы while j < n and s[j] == ch: j += 1 # после блока букв должен стоять чётный разряд if j < n and s[j] in even: ans = max(ans, j - i + 1) # длина: от i до j включительно # переходим к следующей позиции после левой границы i += 1 else: i += 1 print(ans) |
Ответ: 1212
