Задание №24 — Обработка строк, нахождение подстроки
Текстовый файл состоит из заглавных букв латинского алфавита Q, R, W и цифр 1, 2, 4. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых ни одна буква не стоит рядом с буквой, а цифра – с цифрой.
Для выполнения этого задания следует написать программу.
Правильный ответ
17
Пояснение
Решение:
Условие «ни одна буква не стоит рядом с буквой, а цифра — с цифрой» означает, что на искомом участке буквы и цифры строго чередуются: любые два соседних символа должны быть разного типа. Конкретные значения (Q, R, W или 1, 2, 4) роли не играют — важен только тип символа.
Значит, достаточно одного прохода: если тип очередного символа отличается от типа предыдущего, серия продолжается, иначе начинается новая серия длины 1. Тип удобно определять методом isdigit().
s = open('64844_24.txt').read().strip()
mx = cur = 1
for i in range(1, len(s)):
if s[i].isdigit() != s[i - 1].isdigit():
cur += 1
else:
cur = 1
if cur > mx:
mx = cur
print(mx)
Программа выводит 17 — это длина самого длинного чередующегося участка «буква-цифра-буква-…».
Ответ: 17