Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле максимальное количество идущих подряд символов, оканчивающихся подстрокой \(DOG,\) среди которых цифра \(2\) содержится ровно \(300\) раз, а подстрока \(DOG\) встречается не менее \(3\) раз. В ответе запишите число — количество символов в найденной последовательности. Для выполнения этого задания следует написать программу.
Решение:
Python
s = open('24var04.txt').readline().strip()
dva = [-1]
dog = []
for i in range(len(s)):
if s[i] == '2':
dva.append(i)
dog.append(s[dva[-2]+1:dva[-1]].count('DOG'))
dva.append(len(s))
dog.append(s[dva[-2]+1:dva[-1]].count('DOG'))
max_len = 0
total_dog = sum(dog[:301])
#print(total_dog)
for i in range(len(dva) - 302):
total_dog -= dog[i]
total_dog += dog[i+301]
if dog[i+301] and total_dog > 2:
max_len = max(max_len, dva[i + 301] - dva[i+1] + s[dva[i+301]+1:dva[i+302]].rfind('DOG') + 3)
print(max_len)
Ответ: \(11487\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене