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

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

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

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

Задача 21#29875Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  . Определите длину самой длинной последовательности идущих подряд символов B  .

Для выполнения этого задания следует написать программу. В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение

Решение 1:

s = open(’Задание_3_ДЗ.txt’).read()
count = 1
maxim = 0
for i in range(len(s) - 1):
    if (s[i] == s[i + 1] and s[i] == "B"):
        count += 1
        if (count > maxim):
            maxim = count
    else:
        count = 1
print(maxim)

Решение 2:

a = ’B’
maxim = 1
while a in s:
    a += ’B’
    maxim = len(a)
print(maxim - 1)

 

Ответ: 12

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

Задача 22#29876Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  . Определите длину максимальной последовательности подряд идущих символов, где все символы одинаковые.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_4_ДЗ". В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
s = open(’Задание_4_ДЗ.txt’).read()  
count = 1  
maxim = 0  
for i in range(len(s) - 1):  
    if (s[i] == s[i + 1]):  
        count += 1  
        if (count > maxim):  
            maxim = count  
    else:  
        count = 1  
print(maxim)

 

Ответ: 14

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

Задача 23#29877Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  символов A  , B  , C  . Определите длину максимальной последовательности подряд идущих символов, где каждые два соседних символа различны.

Для выполнения этого задания следует написать программу. В ответ запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
s = open(’Задание_5_ДЗ.txt’).read()  
count = 1  
maxim = 0  
for i in range(len(s) - 1):  
    if (s[i] != s[i + 1]):  
        count += 1  
        if (count > maxim):  
            maxim = count  
    else:  
        count = 1  
print(maxim)

 

Ответ: 35

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

Задача 24#29878Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  . Найдите самую длинную последовательность, состоящую из символов B  , стоящих через 1 элемент (разница в индексах равна 2). Например, для последовательности AA (B)A (B )C(B)BD  ответ будет равен 3.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_6_ДЗ". В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
s = open(’Задание_6_ДЗ.txt’).read()  
maxim = 0  
 
for j in range(2):  
    count = 1  
    for i in range(j, len(s) - 2, 2):  
        if (s[i] == s[i + 2] and s[i] == ’B’):  
            count += 1  
            if (count > maxim):  
                maxim = count  
        else:  
            count = 1  
print(maxim)

 

Ответ: 11

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

Задача 25#29879Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  , D  , E  . Найдите модуль разности между длинами максимальной подпоследовательности, состоящей только из символов A  , и максимальной подпоследовательности, состоящей только из символов B  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_7_ДЗ". В ответе запишите искомую разность.

Вложения к задаче
Показать ответ и решение
s = open(’Задание_7_ДЗ.txt’).read()  
maxA, maxB = 0, 0  
countA, countB = 1, 1  
for i in range(len(s) - 1):  
    if (s[i] == s[i + 1] and s[i] == ’A’):  
        countA += 1  
        maxA = max(maxA, countA)  
    else:  
        countA = 1  
    if (s[i] == s[i + 1] and s[i] == ’B’):  
        countB += 1  
        maxB = max(maxB, countB)  
    else:  
        countB = 1  
print(maxA, maxB)  
print(abs(maxB - maxA))

 

Ответ: 0

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

Задача 26#29881Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  , D  , E  . Найдите максимальное количество символов между двумя символами A  , при условии, что между ними нет символов A  . Например, для последовательности AABA  (BCB )AD  ответ будет равен 3.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_9_ДЗ". В ответе запишите искомое количество символов.

Вложения к задаче
Показать ответ и решение
s = open(’Задание_9_ДЗ.txt’).read()  
maxim = 0  
A1, A2 = 0, 0  
flag = False  
for i in range(len(s)):  
    if (flag == False and s[i] == ’A’):  
        # Иначе может быть такое, что А является далеко не первым символов  
        # и найденная разность будет между нулем и первым символом A  
        A2 = i  
        flag = True  
    if (s[i] == ’A’ and flag == True):  
        A1 = A2  
        A2 = i  
        diff = A2 - A1 - 1  
        if (diff > maxim):  
            maxim = diff  
print(maxim)

 

Ответ: 53

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

Задача 27#29882Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  , D  , E  . Найдите количество символов между двумя самыми отдалёнными буквами A  , между которыми находятся только согласные буквы. Например, для последовательности AABA  (BCB )AD  ответ будет равен 3.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_10_ДЗ". В ответе запишите искомое количество символов.

Вложения к задаче
Показать ответ и решение
s = open(’Задание_10_ДЗ.txt’).read()  
maxim = 0  
A1, A2 = 0, 0  
flag = False  
for i in range(len(s)):  
    if (flag == False and s[i] == ’A’):  
        A2 = i  
        flag = True  
    if (flag == True):  
        if (s[i] == ’E’):  
            flag = False  
        else:  
            if (s[i] == ’A’):  
                A1 = A2  
                A2 = i  
                diff = A2 - A1 - 1  
                if (diff > maxim):  
                    maxim = diff  
print(maxim)

 

Ответ: 21

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

Задача 28#29883Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  , D  , E  . Найдите количество повторений сочетаний ABBA  , BABA  и BAAB  . Для сочетания BABA  считать, что в последовательности BABABA  два повторения, для сочетания ABBA  считать, что в последовательности ABBABBA  два повторения, для сочетания BAAB  считать, что в последовательности BAABAAB  два повторения.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_11_ДЗ". В ответе запишите максимальное из трех значений и сочетание, которое повторяется меньше всего без разделительных знаков.

Вложения к задаче
Показать ответ и решение
s = open("Задание_11_ДЗ.txt").read()
abba, baba, baab = 0, 0, 0
for i in range(len(s) - 3):
    if (s[i:i+4] == "ABBA"):
        abba += 1
    if (s[i:i+4] == "BABA"):
        baba += 1
    if (s[i:i+4] == "BAAB"):
        baab += 1
print(abba, baba, baab)

 

Ответ: 1641ABBA

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

Задача 29#29889Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите последовательность максимальной длины, которая не содержит подряд идущих символов R.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_17_ДЗ". В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
f = open("Задание_17_ДЗ.txt")  
s = f.read() + ’+’ #заменим последний символ, чтобы проверить все пары  
count = 0  
maxim = 0  
for i in range(len(s) - 1):  
    count += 1  
    if s[i] == s[i + 1] and s[i] == ’R’:  
        maxim = max(maxim, count)  
        count = 0  
print(max(maxim, count))

 

Ответ: 4472

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

Задача 30#29890Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите максимальное количество подряд идущих пар символов RE  или RA  . Искомая подстрока может включать только пары RE  , только пары   RA  или содержать одновременно как пары RE  , так и пары RA  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_18_ДЗ". В ответе запишите искомое количество.

Вложения к задаче
Показать ответ и решение

Решение через цикл

Считаем файл. Заменим нужные комбинации на звёздочки, таким образом мы сможем проверять, если рядом две звезды - попалась нужная комбинация. Пройдёмся по строке и последовательно проверим, что соседние элементы - звёзды, если это так, то увеличим счётчик и обновим максимум (если нашли более длинную последовательность), если же последовательность прервалась - сбросим счётчик. Выводим найденный максимум.

# Открываем файл и читаем первую строку
f = open("Задание_18_ДЗ.txt")
s = f.readline()

# Заменяем все пары "RA" и "RE" на звездочки
s = s.replace("RA", "*")
s = s.replace("RE", "*")

# count - счетчик текущей последовательности звездочек
count = 1
# maxim - максимальная длина найденной последовательности
maxim = 0

# Проходим по всем символам строки (кроме последнего)
for i in range(len(s) - 1):
    # Если два подряд идущих символа - это звездочки
    if s[i] == s[i + 1] and s[i] == "*":
        # Увеличиваем счетчик последовательности
        count += 1
        # Обновляем максимальную длину
        maxim = max(maxim, count)
    else:
        # Последовательность прервалась - сбрасываем счетчик
        count = 1

# Выводим максимальное количество подряд идущих пар RE или RA
print(maxim)

 

Ответ: 2

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

Задача 31#29891Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите самую длинную последовательность, где символы M  и S  (в любом порядке) не стоят рядом .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_19_ДЗ". В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_19_ДЗ.txt’).read()  
f = f.replace(’MS’, ’M*S’)  
f = f.replace(’SM’, ’S*M’)  
ar = f.split(’*’)  
print(max(map(len, ar)))

 

Ответ: 3339

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

Задача 32#29893Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов V, D, M. Найдите самую длинную последовательность, состоящую из последовательно идущих пар одинаковых элементов. Соседние пары не могут повторяться. Например, строка «VVDDMMVV» подходит условию, а строка «VVMMMMVV» не подходит.

Для выполнения этого задания следует написать программу. В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
# Открываем файл для чтения
f = open("Задание_21_ДЗ__tcfz.txt")

# Читаем содержимое файла и добавляем "+" для проверки пар
s = f.read() + "+"

# Инициализируем счетчики
count = 0  # Текущая длина последовательности
maxim = 0  # Максимальная длина последовательности

# Проверяем символы на нечетных позициях
for i in range(1, len(s) - 1, 2):
    if s[i] == s[i - 1]:
        count += 2  # Увеличиваем счетчик
        maxim = max(maxim, count)  # Обновляем максимальную длину

        if s[i] == s[i + 1]:
            count = 0  # Сбрасываем счетчик
    else:
        count = 0  # Сбрасываем счетчик

# Сбрасываем счетчик для следующего цикла
count = 0

# Проверяем символы на четных позициях
for i in range(2, len(s) - 1, 2):
    if s[i] == s[i - 1]:
        count += 2
        maxim = max(maxim, count)

        if s[i] == s[i + 1]:
            count = 0
    else:
        count = 0

    # Выводим максимальную длину последовательности
print(maxim)

 

Ответ: 18

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

Задача 33#29894Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106   заглавных букв латинского алфавита. Найдите последовательность максимальной длины из подряд идущих элементов, символы которой принадлежат D, S, M, R, E, A, I, K.

Для выполнения этого задания следует написать программу. В ответе запишите длину искомой последовательности.

Вложения к задаче
Показать ответ и решение
# Открываем файл для чтения
f = open(’Задание_22_ДЗ.txt’)

# Читаем содержимое файла
s = f.read()

# Задаем строку для проверки символов
s1 = "DSMREAIK"

# Инициализируем счетчики
count = 1      # Текущая длина последовательности
maxim = 0      # Максимальная длина последовательности

# Проходим по всем символам строки
for i in range(len(s) - 1):
    # Проверяем, входят ли текущий и следующий символ в строку s1
    if s[i] in s1 and s[i + 1] in s1:
        count += 1  # Увеличиваем счетчик последовательности
        maxim = max(maxim, count)  # Обновляем максимальную длину
    else:
        count = 1  # Сбрасываем счетчик, если символы не в s1

# Выводим максимальную длину последовательности
print(maxim)

 

Ответ: 11

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

Задача 34#29895Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите длину максимальной последовательности символов, которая не содержит подряд идущих повторяющихся троек символов. Для строки GBCABCA  искомая длина равна 6  (GBCABC   )  , для строки ABCABC  искомая длина равна 5  (ABCAB   )  , для строки GBCAF  BCA  искомая длина равна 8  (GBCAF   BCA )  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_23_ДЗ". В ответе запишите искомую длину.

Вложения к задаче
Показать ответ и решение
# Читаем содержимое файла
f = open("Задание_23_ДЗ__tcgb.txt").read()

# Инициализируем счетчики
count = 5      # Начальная длина последовательности
maxim = 5      # Максимальная длина последовательности

# Проходим по строке, начиная с первого символа и до предпоследнего блока из 5 символов
for i in range(len(f) - 5):
    # Сравниваем два блока по 3 символа
    if f[i:i+3] != f[i+3:i+6]:
        count += 1  # Увеличиваем счетчик, если блоки не равны
        maxim = max(count, maxim)  # Обновляем максимальную длину
    else:
        count = 5  # Сбрасываем счетчик до начального значения, если блоки равны

# Выводим максимальную длину последовательности
print(maxim)

 

Ответ: 88869

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

Задача 35#29896Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов X  , Y  , Z  . Найдите самую длинную последовательность, которая не содержит подстроку XXY  Z  , т.е. для последовательности XXY  ZXY  условию удовлетворяет последовательность XY  ZXY

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_24_ДЗ". В ответе запишите длину искоймой последовательности.

Вложения к задаче
Показать ответ и решение
# Открываем файл для чтения
f = open(’Задание_24_ДЗ.txt’)
s = f.read()  # Читаем содержимое файла

# Инициализируем переменные
string = ""  # Строка для хранения текущей последовательности
maxim = 0    # Максимальная длина допустимой последовательности

# Проходим по всем символам строки
for i in range(len(s)):
    string += s[i]  # Добавляем текущий символ к строке
    # Проверяем, содержит ли текущая строка подстроку "XXYZ"
    if string.count("XXYZ") != 0:
        maxim = max(maxim, len(string) - 1)  # Обновляем максимальную длину, исключая последний символ
        string = "XYZ"  # Сбрасываем строку до "XYZ", так как "XXYZ" может быть только в конце

# Выводим максимальную длину последовательности, учитывая остаток строки
print(max(maxim, len(string)))

 

Ответ: 645

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

Задача 36#29897Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите самую длинную последовательность, которая не содержит символов B  , но содержит не менее 4-ех символов C  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_25_ДЗ". В ответе запишите длину искомой строки.

Вложения к задаче
Показать ответ и решение
# Читаем содержимое файла
f = open("Задание_25_ДЗ.txt").read()

# Разделяем строку по символу ’B’
ar = f.split("B")

# Инициализируем переменную для хранения максимальной длины
maxim = 0

# Проходим по всем частям, полученным после разделения
for i in ar:
    # Проверяем, есть ли в части не менее 4 символов ’C’
    # Умножаем длину части на 1, если ’C’ >= 4, иначе на 0
    maxim = max(maxim, len(i) * (i.count(’C’) >= 4))

# Выводим максимальную длину подходящей части
print(maxim)

 

Ответ: 310

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

Задача 37#29898Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите количество последовательностей, каждая из которых содержит не менее 15 символов, начинается и заканчивается буквой A  и не содержит букв A  (кроме начальной и конечной) и букв R  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_26_ДЗ". В ответе запишите искомое количество.

Вложения к задаче
Показать ответ и решение

Решение 1

# Читаем содержимое файла
f = open("Задание_26_ДЗ__tcm8.txt").read()

# Разделяем строку по символу ’A’
ar = f.split("A")

# Инициализируем счетчик подходящих подстрок
count = 0

# Проверяем первую подстроку (до первого ’A’)
if f[0] == ’A’:
    # Увеличиваем счетчик, если длина подстроки >= 13 и не содержит ’R’
    count += ((len(ar[0]) >= 13) and (ar[0].count(’R’) == 0))

# Проверяем последнюю подстроку (после последнего ’A’)
if f[len(f) - 1] == ’A’:
    # Увеличиваем счетчик, если длина подстроки >= 13 и не содержит ’R’
    count += ((len(ar[len(ar) - 1]) >= 13) and
              (ar[len(ar) - 1].count(’R’) == 0))

# Проверяем все подстроки между первыми и последними ’A’
for i in range(1, len(ar) - 1):
    # Увеличиваем счетчик, если длина подстроки >= 13 и не содержит ’R’
    count += ((len(ar[i]) >= 13) and (ar[i].count(’R’) == 0))

# Выводим общее количество подходящих подстрок
print(count)

Решение 2

# Читаем содержимое файла
s = open("Задание_26_ДЗ__tcm8.txt").read()

# Инициализируем переменные
flag = False  # Флаг для отслеживания наличия ’A’
counter = 0   # Счетчик длины последовательности
ans = 0       # Ответ — количество подходящих последовательностей

# Проходим по каждому символу в строке
for i in range(len(s)):
    if s[i] == ’A’ and flag:
        # Если встречаем ’A’ и флаг установлен, увеличиваем счетчик
        counter += 1
        # Увеличиваем ответ, если длина последовательности больше 14
        ans += counter > 14
        flag = True  # Устанавливаем флаг, что мы находимся в последовательности
        counter = 1   # Сбрасываем счетчик на 1 (для текущего ’A’)
    elif s[i] == ’A’:
        # Если встречаем первое ’A’, устанавливаем флаг и сбрасываем счетчик
        counter = 1
        flag = True
    elif s[i] == ’R’:
        # Если встречаем ’R’, сбрасываем флаг (заканчиваем последовательность)
        flag = False
    else:
        # Увеличиваем счетчик для текущей последовательности
        counter += 1

# Выводим количество подходящих последовательностей
print(ans)

Ответ: 6740

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

Задача 38#29901Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите длины самых длинных подпоследовательностей символов, состоящих только из гласных и только из согласных букв (считать, что Y  - согласная).

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_29_ДЗ". В ответе запишите длины соответствующих подпоследовательностей через пробел в порядке возрастания.

Английский алфавит: ABCDEF   GHIJKLM    NOP QRST  UV W XY Z  .

Вложения к задаче
Показать ответ и решение
# Читаем содержимое файла
f = open("Задание_29_ДЗ__tcmj.txt").read()

# Определяем гласные буквы
gl = ’EIOAU’

# Инициализируем счетчики для гласных и согласных
count_gl, count_sogl = 0, 0
maxim_gl, maxim_sogl = 0, 0

# Проходим по каждому символу в строке
for i in range(len(f)):
    if f[i] in gl:  # Проверяем, является ли символ гласной
        count_gl += 1  # Увеличиваем счетчик гласных
        maxim_gl = max(maxim_gl, count_gl)  # Обновляем максимальное количество гласных
        count_sogl = 0  # Сбрасываем счетчик согласных
    else:
        count_sogl += 1  # Увеличиваем счетчик согласных
        maxim_sogl = max(maxim_sogl, count_sogl)  # Обновляем максимальное количество согласных
        count_gl = 0  # Сбрасываем счетчик гласных

# Выводим максимальные длины последовательностей гласных и согласных
print(maxim_gl, maxim_sogl)

 

Ответ: 9 63

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

Задача 39#29902Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Найдите длину максимальной подпоследовательности, где идет чередование гласных и согласных букв. Считать, что Y  - гласная.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_30_ДЗ". В ответе запишите длину искомой последовательности.

Пример подходящей последовательности: BAKON   Y RARET

Вложения к задаче
Показать ответ и решение
# Читаем содержимое файла
f = open("Задание_30_ДЗ__tcmk.txt").read()

# Определяем гласные буквы (включая ’Y’)
gl = ’EIOAUY’

# Инициализируем счетчик и максимальную длину последовательности
count = 1
maxim = 0

# Проходим по всем символам строки, кроме последнего
for i in range(len(f) - 1):
    # Проверяем, меняется ли тип символа (гласная/согласная) между текущим и следующим
    if (f[i] in gl) != (f[i + 1] in gl):
        count += 1  # Увеличиваем счетчик, если тип символа изменился
        maxim = max(maxim, count)  # Обновляем максимальную длину последовательности
    else:
        count = 1  # Сбрасываем счетчик, если тип символа не изменился

# Выводим максимальную длину последовательности чередующихся гласных и согласных
print(maxim)

 

Ответ: 16

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

Задача 40#29907Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов, которые являются цифрами от 1 до 9, знаками плюс, минус. Найдите подпоследовательность, состоящую из максимального количества положительных чисел. (Положительное число - число, перед которым либо нет знака, либо знак "+")

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_35_ДЗ". В ответе запишите сумму данной подпоследовательности, если подпоследовательностей с максимальным количеством положительных элементов несколько, то в ответе запишите максимальную сумму.

Вложения к задаче
Показать ответ и решение
# Читаем содержимое файла
f = open("Задание_35_ДЗ__tcn1.txt").read()

# Инициализируем переменные
max_plus = 1  # Максимальное количество последовательных знаков ’+’
count_plus = 1  # Текущее количество последовательных знаков ’+’
max_sum = int(f[0])  # Максимальная сумма чисел
sum = int(f[0])  # Текущая сумма чисел

# Проходим по всем символам строки, начиная со второго и с шагом 2
for i in range(1, len(f) - 1, 2):
    if f[i] == ’+’:
        # Если текущий символ — ’+’, добавляем следующее число к сумме
        sum += int(f[i + 1])
        count_plus += 1  # Увеличиваем счетчик последовательных ’+’

        # Проверяем, превышает ли текущий счетчик максимальный
        if count_plus > max_plus:
            max_plus = count_plus  # Обновляем максимальное количество ’+’
            max_sum = sum  # Обновляем максимальную сумму
        elif count_plus == max_plus:
            # Если счетчики равны, проверяем, является ли текущая сумма больше максимальной
            if sum > max_sum:
                max_sum = sum  # Обновляем максимальную сумму
    else:
        # Если текущий символ не ’+’, сбрасываем сумму и счетчик
        sum = 0
        count_plus = 0

    # Выводим максимальную сумму чисел, соответствующих самой длинной последовательности ’+’
print(max_sum)

 

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