Теория:

Характеристика задания

1. Тип ответа: числовой ответ.

2. Структура содержания задания: дан текстовый файл.

3. Уровень сложности задания: высокий.

4. Примерное время выполнения: \(18\) минут.

5. Количество баллов: \(1\).

6. Требуется специальное программное обеспечение: среда программирования.

7. Задание проверяет умение создавать программы для обработки символьной информации.
 
Пример задания (демоверсия \(2022\))
 
демо1.png
Рис. \(1\). Пример задания
 
Файл: 24.txt.
 
Важно помнить, что строки в Python относятся к категории неизменяемых последовательностей, то есть все функции и методы могут лишь создавать новую строку.
 
Основныефункции и методы строк
 
\(s1 + s2\)конкатенация (сложение строк)
\(s * n\)повторение строки \(s\)\(n\) раз
\(s[i] \)обращение по индексу
\(s[i:j:step]\)извлечение среза
\(len(s)\)длина строки \(s\)
\(s.replace\) («слово1», «слово2»\([, mx]\))    заменяет «слово\(1\)» на «слово\(2\)», \(mx\) (необязательный параметр) ограничивает количество замен
\(s.split\) («символ»)разбиение строки по разделителю «символ»
\(s.count(str)\)возвращает количество непересекающихся вхождений подстроки \(str\)
              
Для решения задачи напишем программу.
 
with open («\(24.txt\)») as \(f\):
    \(s=f.readline()\)
Считаем данные из файла в переменную \(s\)
\(k, m = 1, 1\)
В переменной \(k\) будем накапливать текущую длину цепочки,
в переменной \(m\) — сохранять максимальную длину
for \(i\) in range (\(len(s)-1\)):
    if \(s[i]==«P»\) and \(s[i+1]==«P»\):
        \(k=1\)
    else:
        \(k = k+1\)
        \(m=max(m, k)\)
С помощью цикла \(for\) будем перебирать символы строки \(s\).
Если соседние символы равны \(P\), то текущая длина цепочки \(k\)
получает значение \(1\), иначе \(k\) увеличим на \(1\) и в переменную \(m\) 
сохраним максимальное значение
print (\(m\))Выведем на экран значение \(m\)
 
Ответ: \(188\).
Источники:
Рис. 1. Пример задания. © ЯКласс.