Задача к ЕГЭ по информатике на тему «прочие прототипы» №15

Текстовый файл состоит не более чем из 104  строк, каждая из которых состоит не более чем из 104  заглавных букв латинского алфавита. В строке, содержащей не менее 150 символов Z  найдите максимальное расстояние (разница в индексах) между двумя одинаковыми символами, между которым не повторяется этот символ. Если строк, содержащих не менее 150 символов Z  несколько, то используйте последнюю из таковых для поиска маскимального расстояния.

Пример:

ABBAC

P REREOOOOOR

QW  ERT Y Q

Среди данных строк нет ни одной, где количесто символов Z  не менее 150. Если забыть про это условие (в рамках примера), то максимальное расстояние между символами R  во второй строке и оно равно 7.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом «Задание_48_ДЗ». В ответе запишите искомое расстояние.

Решение 1

f = open(’Задание_48_ДЗ__tctn.txt’)
t = ’’
for i in f:
    if i.count(’Z’) >= 150:
        t = i
alf = ’QWERTYUIOPASDFGHJKLZXCVBNM’
ans = 0
for i in range(26):
    m = t.split(alf[i])
    for j in m[1:-1]:
        ans = max(len(j), ans)
print(ans + 1)

Решение 2

f = open("Задание_48_ДЗ.txt")
maxim = 0
alph = sorted(list("qwertyuiopasdfghjklzxcvbnm".upper()))
for s in f:
    s = s.strip()
    last_symbol = [-1] * 26
    if s.count("Z") >= 150:
        maxim = 0
        for i in range(len(s)):
            ind_sym = alph.index(s[i])
            if last_symbol[ind_sym] != -1:
                if i - last_symbol[ind_sym] >= 2:
                    maxim = max(i - last_symbol[ind_sym], maxim)
            last_symbol[ind_sym] = i
print(maxim)

 

Ответ: 274
Оцените статью
Я решу все!