Текстовый файл состоит не более чем из строк, каждая из которых состоит не более чем из
заглавных букв латинского алфавита. В строке, содержащей не менее 150 символов
найдите максимальное расстояние (разница в индексах) между двумя одинаковыми символами, между которым не повторяется этот символ. Если строк, содержащих не менее 150 символов
несколько, то используйте последнюю из таковых для поиска маскимального расстояния.
Пример:
Среди данных строк нет ни одной, где количесто символов не менее 150. Если забыть про это условие (в рамках примера), то максимальное расстояние между символами
во второй строке и оно равно 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)