#1-27 номера ЕГЭ по информатике
March 24, 2023
24 Разбор номера 36879 ЕГЭ по информатике от 2023 года #24
Условие: Тип 24 № 36879
Текстовый файл содержит строки различной длины.
Строки содержат только заглавные буквы латинского алфавита (ABC…Z).
В строках, содержащих менее 25 букв G
, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке.
Для выполнения этого задания следует написать программу. Ссылка на файл, который необходимо обработать с помощью данного алгоритма.
Комментарии к первому варианту решения задачи:
- открываем файл для чтения (
mode=”r”
) и считывает строки в список, через [.readlines()
- создаем дополнительный список, в который будем записывать только лишь подходящие под первое условие строки
- пробегаем все строчки из списка строк файла
- если в какой-то из строк найдется кол-во букв
G
меньше 25, то условие истинно - значит добавляем такую строчку в наш промежуточный список
M
- так как нам необходимо “вывести максимальное расстояние между одинаковыми буквами в одной строке” то вводим алфавит
- переменная для хранения максимальной длины
- берем строку из списка
М
, которая уже удовлетворяет первому условию - пробегаем все буквы из алфавита
- сравниваем
maxi
с расстояниями между:крайняя правая буква - крайняя левая буква
- выводим наибольшее расстояние между двумя одинаковыми буквами во всем файле
# Код решения Вариант 1 a = open('24.txt').readlines() M = [] for s in a: if s.count('G') < 25: M.append(s) alpahbet = 'QWERTYUIOPASDFGHJKLZXCVBNM' maxi = 0 for s in M: for a in alphabet: maxi = max(maxi, s.rindex(a) - s.index(a)) print(maxi)
# Код решения Вариант 2 maxi = 0 a = open('24.txt').readlines() for s in a: if s.count('G') < 25: for a in 'QWERTYUIOPASDFGHJKLZXCVBNM': maxi = max(maxi, s.rindex(a) - s.index(a)) print(maxi)
Кстати в случае, если вам понадобится алфавитный порядок букв, то можно либо отсортировать строку через списочное выражение, либо воспользоваться встроенной библиотекой import string
alphabet = sorted([i for i in 'QWERTYUIOPASDFGHJKLZXCVBNM']) print(alphabet) import string print(string.ascii_uppercase)