стереть
Класс
8 9 10 11
Нужно авторизоваться
Нужно авторизоваться
Нужно авторизоваться
Нет аккаунта?
При наличии аккаунта на платформе можно
Введите больше 6 символов
Проблемы со входом?
Введи последние 4 цифры номера, с которого
поступит звонок. Трубку брать не нужно.
Повторный звонок через
сек.
Добро пожаловать!
Зарегистрируйся и получи Демо мастер-группы на 10 дней по любимым предметам бесплатно.
Добро пожаловать!
Как тебя зовут?
Введите не меньше 2 символов
Привяжем номер телефона
Введите не меньше 2 символов
Привяжем номер телефона
Повторный звонок через
30 сек.
Теперь нужно подтвердить номер - введи последние 4 цифры номера, с которого поступит звонок. Трубку брать не нужно
Введите не меньше 2 символов
Придумаем пароль
Почти закончили! Теперь нужно создать надежный пароль
Введите не меньше 2 символов
Немного о тебе
В какой класс ты переходишь?
Укажи, какие предметы будешь или хочешь сдавать
Введите не меньше 2 символов
На почту 12345@mail.ru отправлена ссылка для сброса пароля.
OK
Информатика

Задача по теме: "строковая обработка"

Информатика
Задание 24 строковая обработка
Подсказка
За подсказку ты получишь лишь половину баллов
Использовать
Просмотры
196
banner-img

Текстовый файл 24p-30.txt состоит из символов A, B и C. В прилагаемом файле определите максимальное количество символов в непрерывной подпоследовательности, состоящей из идущих подряд групп символов ABC в указанном порядке. При этом в начале и в конце искомой последовательности группа символов ABC может быть неполной. Искомая подпоследовательность должна содержать не менее одной полной группы символов ABC. Например, условию задачи удовлетворяют: BCABCABCA; CABCAB и т.п. Для выполнения этого задания следует написать программу.

loading
Решение
single-task__solution-banner

Решение:

Решение программой:

s = open('24p-30.txt').readline()
l = maxl = 1
for i in range(1,len(s)):
    if s[i-1:i+1] in 'ABCA':
        l += 1
    else:
        maxl = max(maxl, l)
        l = 1
print(maxl)

Разберём код:

  1. Считывается строка s из файла '24p-30.txt'.

  2. Инициализируются переменные l и maxl значением 1. Переменная maxl будет содержать максимальную длину последовательности, а l - длину текущей последовательности.

  3. Запускается цикл по индексам строки s от 1 до len(s) - 1:

    • На каждой итерации проверяется, является ли текущая подстрока s[i-1:i+1] одной из допустимых последовательностей 'AB', 'BC' или 'CA'.

    • Если условие выполнено, увеличивается длина текущей последовательности l на 1.

    • Если условие не выполнено (то есть текущая последовательность нарушена), сравнивается длина текущей последовательности l с максимальной длиной maxl, и обновляется maxl, если необходимо. Затем l сбрасывается в 1 для начала подсчета новой последовательности.

  4. После завершения цикла выводится значение переменной maxl, которая содержит максимальную длину подстроки, удовлетворяющей условиям задачи.




Ответ: 15

На экзамене это задание принесло бы тебе 2/2 баллов.
Решать еще

Сообщение об ошибке

Расскажите, в каком месте допущена ошибка, мы как можно быстрее её исправим. Спасибо за обратную связь!

Здравствуйте!

Выберите информацию о себе ниже

pay-success-img

Оплата прошла успешно!

pay-un-success-img

Оплата не прошла

Попробуйте снова