#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)