ЕГЭ Информатика 2023: Python решения 24 задания

Рассмотрим несколько примеров решения 24-го задания ЕГЭ по информатике с использованием Python.

Задача 1: Подсчет строк с преобладанием буквы «J»

Условие: Текстовый файл содержит строки различной длины. Определите количество строк, где буква «J» встречается чаще, чем буква «И».

Решение:

Файл открывается как итерируемый объект. Цикл for перебирает строки. Внутри цикла сравнивается количество букв «J» и «И» в строке с помощью метода count(). Если «J» встречается чаще, счетчик K увеличивается. После обработки всех строк выводится значение K.

K = 0
f = open('файл.txt', 'r')
for s in f:
    if s.count('J') > s.count('И'):
        K += 1
f.close()
print(K)

Ответ: 482

Задача 2: Максимальное расстояние между одинаковыми буквами

Условие: Текстовый файл содержит строки различной длины. В строках короче 20 символов определите и выведите максимальное расстояние между одинаковыми буквами.

Решение:

Переменная максимум хранит максимальное расстояние. Цикл for перебирает строки. Если длина строки меньше 20, вложенный цикл перебирает буквы. Для каждой буквы, встречающейся более одного раза, вычисляется расстояние между первым и последним вхождением с помощью s.index(i) и s.rindex(i). Функция max() обновляет значение максимум. Результат выводится на экран.

максимум = 0
f = open('24164.txt', 'r')
for s in f:
    if len(s) < 20:
        for i in s:
            if s.count(i) > 1:
                максимум = max(максимум, s.rindex(i) - s.index(i))
f.close()
print(максимум)

Ответ: 974

Задача 3: Чаще всего встречающаяся буква после буквы «X»

Условие: Текстовый файл содержит строки различной длины. Для каждой строки определите букву (или буквы), которая встречается чаще всего после буквы «X», и выведите количество её вхождений.

Решение:

Словарь словарь хранит частоту букв после «X». Цикл for перебирает строки, вложенный цикл — символы, начиная с предпоследнего. Если символ равен «X», частота следующего символа увеличивается в словаре с помощью словарь.get(s[i + 1], 0) + 1. После обработки всех строк находится максимальное значение в словаре. Создается список СП для букв с максимальной частотой. Результат (максимальное значение) выводится на экран.

словарь = {}
f = open('24164.txt', 'r')
for s in f:
    for i in range(len(s) - 1):
        if s[i] == 'X':
            словарь[s[i + 1]] = словарь.get(s[i + 1], 0) + 1
f.close()

n = max(словарь.values())
print(n)

Ответ: 928

Задача 4: Самая длинная цепочка одинаковых букв

Условие: Текстовый файл содержит строки различной длины. Найдите строку с самой длинной цепочкой одинаковых букв (если несколько таких строк, выбирается первая). Определите букву, которая встречается в этой строке реже всего, но присутствует в ней (если несколько таких, выбирается последняя в алфавите). Выведите эту букву и количество её вхождений во всем файле.

Решение:

Переменные komax, kmax и line хранят текущую длину цепочки, максимальную длину и строку с максимальной цепочкой соответственно. Цикл for перебирает строки, внутренний цикл считает длину текущей цепочки. Если текущая длина больше максимальной, обновляются kmax и line. Создается словарь для подсчета частоты букв в line. Находится буква с минимальной частотой (если несколько — последняя в алфавите). Файл открывается заново, и подсчитывается количество вхождений найденной буквы. Результат выводится на экран.

komax = 0
kmax = 0
line = ''
f = open('24164.txt', 'r')
for s in f:
    k = 1
    for i in range(len(s) - 1):
        if s[i] == s[i + 1]:
            k += 1
        else:
            komax = max(komax, k)
            k = 1
    komax = max(komax, k)
    if komax > kmax:
        kmax = komax
        line = s
f.close()

словарь = {}
for i in line:
    словарь[i] = словарь.get(i, 0) + 1
del словарь['\n']

min_count = min(словарь.values())
letters = []
for k, v in словарь.items():
    if v == min_count:
        letters.append(k)
min_letter = max(letters)


f = open('24164.txt', 'r')
content = f.read()
f.close()
print(min_letter, content.count(min_letter))

Ответ: Z 36493

Что будем искать? Например,программа