Текстовый файл содержит строку из набора A, B, C, D, E, F, всего не более чем из \(10^6\) символов. Найдите максимальное количество подряд идущих четвёрок символов ABEC, BDAC, CAFB, CFBA, стоящих одна за другой и пересекающихся с соседними четвёрками одной буквой. Например, в строке BDEABECAFBDACBD такие пары составляют подстроку ABECAFBDAC = ABEC + СAFB + ВDAC, итого \(3\) четвёрки.
Решение:
Python
s = open('5263.txt').readline().strip()
dp = [0] * len(s)
if s[0:4] in ('ABEC', 'BDAC', 'CAFB', 'CFBA'):
dp[3] = 1
if s[1:5] in ('ABEC', 'BDAC', 'CAFB', 'CFBA'):
dp[4] = 1
if s[2:6] in ('ABEC', 'BDAC', 'CAFB', 'CFBA'):
dp[5] = 1
for p in range(6, len(s)):
if s[p-3:p + 1] in ('ABEC', 'BDAC', 'CAFB', 'CFBA'):
if s[p-6:p-2] in ('ABEC', 'BDAC', 'CAFB', 'CFBA'):
dp[p] = dp[p-3] + 1
else:
dp[p] = 1
print(max(dp))
Ответ: \(81\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене