Решение: Поиск корректного выражения
Задание выполняется с использованием прилагаемых файлов.
Текстовый файл состоит из цифр 0, 7, 8, 9 и знаков арифметических операций «–» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, которая является корректным арифметическим выражением с целыми неотрицательными числами. В этом выражении никакие два знака арифметических операций не стоят рядом, в записи чисел отсутствуют незначащие (ведущие) нули и число 0 не имеет знака.
В ответе укажите количество символов.
Решение по шагам
4 шагаКорректное выражение должно состоять из одного или нескольких неотрицательных целых чисел, разделённых знаками «–» или «*». Поэтому оно начинается и заканчивается цифрой, а два знака операций подряд недопустимы.
При просмотре файла последовательно выделяем максимальные фрагменты, в которых соблюдаются правила записи чисел: число 0 может быть только однозначным, а многозначное число не начинается с нуля.
Для каждого корректного фрагмента подсчитываем количество символов и сравниваем полученную длину с текущим максимумом.
Наиболее длинная непрерывная последовательность, являющаяся корректным арифметическим выражением, содержит 111 символов.
Где здесь ошибаются
Учитывать фрагмент, начинающийся или заканчивающийся знаком операции.
Считать корректным многозначное число с ведущим нулём.
Не сбрасывать текущую длину после появления двух знаков операций подряд.
Забыть, что число 0 не может иметь знак и должно записываться только одной цифрой.