Условие: (№ 6050) (А. Богданов)

Разбор 24.PNG

Текстовый файл 24-240.txt состоит не более чем из 10**6 символов и содержит только заглавные буквы латинского алфавита.

Найдите максимальную длину подстроки, не содержащей подстрок, отличающихся от «DANOV» лишь на одну букву.

ray-so-export (1).png

Комментарии к решению:

  1. s = open('24.txt').readline() - открываем файл с именем "24.txt" и считываем первую строку из него, присваивая результат переменной s.
  2. count = 4 - присваиваем переменной count значение 4.
  3. Maxcount = 0 - присваиваем переменной Maxcount значение 0.
  4. for i in range(0, len(s)-4): - начинаем цикл, который будет выполняться для каждого значения i в диапазоне от 0 до длины строки s минус 4.
  5. if (int(s[i] == 'D') + int(s[i+1] == 'A') + int(s[i+2] == 'N') + int(s[i+3] == 'O') + int(s[i+4] == 'V')) == 4: - проверяем, если сумма результатов сравнений символов s[i], s[i+1], s[i+2], s[i+3] и s[i+4] с соответствующими символами 'D', 'A', 'N', 'O' и 'V' равна 4.
  6. count = 4 - присваиваем переменной count значение 4.
  7. else: - в противном случае (если сумма не равна 4), выполняем следующие действия.
  8. count += 1 - увеличиваем значение переменной count на 1.
  9. Maxcount = max(Maxcount, count) - присваиваем переменной Maxcount максимальное значение между текущим значением Maxcount и count.
  10. print(Maxcount) - выводим значение переменной Maxcount.
s = open('24.txt').readline()
count = 4
Maxcount = 0
for i in range(0, len(s)-4):
    if (int(s[i] == 'D') + int(s[i+1] == 'A') + int(s[i+2] == 'N') + int(s[i+3] == 'O') + int(s[i+4] == 'V')) == 4:
        count = 4
    else:
        count += 1
        Maxcount = max(Maxcount, count)
print(Maxcount)

Ответ: