(А. Игнатюк) Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита. Найдите максимальную длину подстроки, которая состоит из комбинаций \(DAD,\) при этом первая и последняя тройки могут быть неполными. В ответе укажите наибольшую длину подходящей подстроки.
Решение:
Python
s = open('5933.txt').readline().strip()
for c in 'BCEFGHIJKLMNOPQRSTUVWXYZ':
s = s.replace(c, ' ')
arr = s.split(' ')
arr.sort(key=len, reverse=True)
ml = 0
for line in arr:
if len(line) < ml:
break
p = 0
while p < len(line):
t = 0
if line[p:p+3] == 'DAD':
t = 3
elif line[p:p+2] == 'AD':
t = 2
elif line[p] == 'D':
t = 1
if not t:
p += 1
continue
p += t
while p < len(line) - 2 and line[p:p+3] == 'DAD':
t += 3
p += 3
if p < len(line) - 1:
if line[p:p+2] == 'DA':
t += 2
p += 2
elif line[p] == 'D':
t += 1
p += 1
ml = max(ml, t)
print(ml)
Ответ: \(99\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене