(Е. Джобс) Текстовый файл состоит не более чем из \(10^6\) символов и содержит только заглавные буквы латинского алфавита \(X, \, Y\) и \(Z.\) Найдите максимальную длину подстроки, которая состоит из сочетаний \(XY, \, YZ, \, YZZ,\) записанных в произвольном порядке. В ответе укажите наибольшую длину подходящей подстроки. Например, в строке \(ZZXZXZZXYYZYZZYYY\) самая длинная подходящая подстрока – \(XYYZYZZ\) имеет длину \(7.\)
Решение:
Python
s = open('5936.txt').readline().strip()
dp = [0] * len(s)
if s[:2] in ('XY', 'YX'):
dp[1] = 2
if s[:3] == 'YZZ':
dp[2] = 3
elif s[1:3] in ('XY', 'YZ'):
dp[2] = 2
for p in range(3, len(s) - 1):
if s[p-2:p+1] == 'YZZ':
dp[p] = dp[p-3] + 3
elif s[p-1:p+1] in ('XY', 'YZ'):
dp[p] = dp[p-2] + 2
print(max(dp))
Ответ: \(314\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене