Текстовый файл содержит строку из заглавных латинских букв A, B, С, D, E и V, всего не более чем из символов. Определите максимальное количество идущих подряд троек символов BDE или ACC (оба вида могут идти в произвольном порядке).
# Решение через замены и сплит s = open("24.txt").readline() # Заменим сначала нужные нам комбинации на * s = s.replace("BDE", "***").replace("ACC", "***").replace("A", "1").replace("B", "1").replace("C", "1") .replace("D", "1").replace("E", "1").replace("V", "1").split("1") # Затем оставшиеся буквы заменим на 1 и сделаем сплит по 1, чтобы ненужные буквы нам не мешались # Делим на 3 значение потому что нам нужно узнать количество подряд идущих троек, а не символов print(max(len(x) for x in s) // 3) #Решение через циклы s = open("24.txt").readline() count = mx = 0 # Данный цикл нужен, потому что возможна ситуация, когда цепочка нужных нам комбинаций пройдёт мимо нас # Во избежании этого мы пишем данный цикл for k in range(3): #Делаем шаг на 3 элемента,так как мы должны отслеживать тройки символов, # Если шаг поставить другой,то ответ будет некорректным for i in range(k, len(s)-2,3): if (s[i] + s[i+1] + s[i+2]) == "ACC" or (s[i] + s[i+1] + s[i+2]) == "BDE": count += 1 if count > mx: mx = count else: count = 0 print(mx)
Ответ: 4