Тема 24. Обработка символьной информации

24.01 Поиск максимальной подстроки

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка символьной информации
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#58982

Текстовый файл содержит строку из заглавных латинских букв A, B, С, D, E и V, всего не более чем из 106  символов. Определите максимальное количество идущих подряд троек символов BDE или ACC (оба вида могут идти в произвольном порядке).

Вложения к задаче
Показать ответ и решение
# Решение через замены и сплит
s = open("24.txt").readline()
# Заменим сначала нужные нам комбинации на *
s = s.replace("BDE", "***").replace("ACC", "***").replace("A", "1").replace("B", "1").replace("C", "1") \
    .replace("D", "1").replace("E", "1").replace("V", "1").split("1")
# Затем оставшиеся буквы заменим на 1 и сделаем сплит по 1, чтобы ненужные буквы нам не мешались

# Делим на 3 значение потому что нам нужно узнать количество подряд идущих троек, а не символов
print(max(len(x) for x in s) // 3)



#Решение через циклы
s = open("24.txt").readline()
count = mx = 0
# Данный цикл нужен, потому что возможна ситуация, когда цепочка нужных нам комбинаций пройдёт мимо нас
# Во избежании этого мы пишем данный цикл
for k in range(3):
#Делаем шаг на 3 элемента,так как мы должны отслеживать тройки символов,
    # Если шаг поставить другой,то ответ будет некорректным
    for i in range(k, len(s)-2,3):
        if (s[i] + s[i+1] + s[i+2]) == "ACC" or (s[i] + s[i+1] + s[i+2]) == "BDE":
            count += 1
            if count > mx:
                mx = count
        else:
            count = 0
print(mx)

 

Ответ: 4

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!