Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- f = open('24__1o24c.txt')
- mc = 0 #макс размер подстроки
- k = 0 #счётка для размера подстроки
- s = f.read()
- a = False # флаг, True если мы уже нашли букву A для подстроки
- b = False # флаг, True если мы уже нашли букву B для подстроки
- c = False # флаг, True если мы уже нашли букву C для подстроки
- ci = -1 # индекс последней буквы C для подстроки
- d = False # флаг, True если мы уже нашли букву C для подстроки
- ai = 0 # индекс начала подстроки(финальной)
- ait = 0 # временный индекс начала подстроки (любой)
- di = 0 # индекс конца подстроки(финальной)
- for i in range(len(s)):
- k += 1
- if s[i] == 'A':
- ait = i
- if a: # если А уже была найдена, начинаем новою подстроку и обнуляем остальное
- k = 1
- a = True
- b = False
- c = False
- d = False
- ci = -1
- else: # если А не была найдена, начинаем новою подстроку
- k = 1
- a = True
- elif s[i] == 'B': # если нашли B и A уже была найдена, меняем соответствующий флаг
- if a:
- b = True
- elif s[i] == 'C': # если нашли С и B уже была найдена, меняем соответствующий флаг и запоминаем индекс это буквы в строке
- if b:
- c = True
- ci = i
- elif s[i] == 'D': # если нашли D и C уже была найдена, меняем соответствующий флаг и запоминаем индекс это буквы в строке
- if c:
- if i - ci == 2: # также проверяем что между нужной C и D есть ровно один символ
- d = True
- if mc < k: # если новая подстрока получилась больше прошлых, меня значения максимальное длинны и запоминаем индексы
- #последней и первой буквы этой подстроки
- mc = k
- ai = ait
- di = i
- print(mc, s[ai:di+1], ai, di) #выводим максимальную длину, подстроку с максимальной длинной и индексы её начала и конца
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement