Найдите максимальную длину цепочки вида DAFDAFDAF…. (состоящей из фрагментов DAF, последний фрагмент может быть неполным). В текстовом файле находится цепочка из символов латинского алфавита A, B, C, D, E, F.

Источник: «Алексей Кабанов»
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
f = open('ege-inf-kabanov-2021-24-12.txt', 'r') s = f.read() kmax = 0 j = s.find('DAF') k = 0 while j < len(s): if s[j:j + 3] == 'DAF': k += 3 j += 2 elif k: if s[j:j + 2] == 'DA': k += 2 j += 1 elif s[j] == 'D': k += 1 kmax = max(k,kmax) k = 0 j += 1 print(kmax) |
ИЛИ
|
1 2 3 4 5 6 7 8 9 10 11 |
f = open('ege-inf-kabanov-2021-24-12.txt', 'r') s = f.read() w = 'DAF' while w in s: w += 'DAF' if w[:-1] in s: print(len(w)-1) elif w[:-2] in s: print(len(w)-2) else: print(len(w)-3) |
ИЛИ
Решение — Хабибулин Динар Наильевич
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
f = open('ege-inf-kabanov-2021-24-12.txt').read() k = 0 m = 0 i = 0 while i < len(f): if f[i] == 'D' and f[i + 1] == 'A' and f[i + 2] == 'F': k += 3 i += 2 elif f[i] == 'D' and f[i + 1] == 'A': k += 2 i += 1 elif f[i] == 'D': k += 1 else: k = 0 if k > m: m = k i += 1 print(m) |
Ответ: 169