Python
f = open('24.txt')
s = f.readline()
# Способ 1 — счётчик
k = m = 0
for i in range(len(s)-1):
if s[i] in 'ABC' and s[i+1] not in 'ABC':
k += 1
m = max(k, m)
else:
k = 0
print(m)
# Способ 2 — регулярки
from re import *
pattern = r'(?:[1-9][0-9]*|0)(?:[-*][0-9]+)*'
print(max(map(len, findall(pattern, s)))) Способ 2
# Способ 3 — двойной цикл Кабанова
f = open('24.txt')
s = f.readline()
m = 0
for l in range(len(s)):
for r in range(l + m, len(s)):
# тут пишем условие проверки подстроки
sub = s[l:r+1]
if проверка(sub):
m = max(m, r - l + 1)
else:
break
print(m)
# Пример: макс длина без 3 одинаковых подряд
m = 0
for l in range(len(s)):
ok = True
for r in range(l + m, len(s)):
if r-l >= 2 and s[r]==s[r-1]==s[r-2]:
ok = False
if ok:
m = max(m, r-l+1)
else:
break 📚 Теория
Обработка текстовых данных. Поиск паттернов, регулярные выражения.