Дан файл 24-280.txt. Необходимо найти самую длинную подстроку, начинающуюся на символ и оканчивающуюся символом
, и не содержащую других символов
и
.
Способ 1
f = open("24-280.txt")
s = f.readline()
# Инициализируем переменные:
# l - текущая длина подстроки, начинающейся на ’C’
# lmax - максимальная длина найденной подстроки
l = lmax = 0
# Проходим по каждому символу в строке
for i in s:
# Если символ - ’C’, начинаем новую подстроку
if i == ’C’:
l = 1 # Начинаем считать длину с 1
# Если символ - ’D’, проверяем и обновляем максимальную длину
elif i == ’D’:
lmax = max(l, lmax) # Сравниваем текущую длину с максимальной
l = 0 # Обнуляем текущую длину, так как подстрока закончилась
# Если текущая длина больше 0 (т.е. мы находимся в подстроке)
elif l > 0:
l += 1 # Увеличиваем длину подстроки на 1
# Печатаем максимальную длину подстроки, увеличенную на 1,
# чтобы учесть символ ’C’ в начале подстроки
print(lmax + 1)
Способ 2
from re import *
f = open("24-280.txt")
s = f.readline()
# Используем регулярное выражение для поиска всех подстрок,
# которые начинаются с ’C’, заканчиваются ’D’ и не содержат других ’C’ и ’D’
t = findall(’C[̂CD]*D’, s)
print(max(map(len, t)))
Ответ: 115