Задача к ЕГЭ по информатике на тему «поиск максимальной подстроки» №20

Текстовый файл состоит не более чем из 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
Оцените статью
Я решу все!