Задание 24
Текстовый файл состоит из цифр 0, 6, 7, 8, 9 и знаков арифметических операций «–» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, которая является корректным арифметическим выражением с целыми неотрицательными числами. В этом выражении никакие два знака арифметических операций не стоят рядом, в записи чисел отсутствуют незначащие (ведущие) нули и число 0 не имеет знака.
В ответе укажите количество символов.
Теория
В данном виде задач необходимо считать текст из файла в строковую переменную и проанализировать ее на наличие определенной последовательности символов. Символы можно сравнивать между собой с помощью знаков ">" или меньше "<" ( а так же ">=" или "<="), причём это сравнение происходит в алфавитном порядке. Например, символ "B" будет больше, чем "A" и т.д. Желательно владеть методами работы со строками - поиск, замена, подсчет количества символов, разбиение строки, длина строки и др. Поиск возможно также выполнить с помощью регулярных выражений - это строка, задающая шаблон поиска подстрок в тексте. Одному шаблону может соответствовать много разных строчек. Термин «Регулярные выражения» является переводом английского словосочетания «Regular expressions».
Решение
Считываем файл в строковую переменную s. Далее, чтобы уменьшить количество различных комбинаций знаков операций и цифр делаем замену знака минус на *, а цифры 6, 8 и 9 на 7. Заменяем две подряд * на пробел, последовательность не может начинаться со знака - заменяем пробел и * на пробел. Заменяем все незначащие 0 на пробел, убираем незначащий 0 перед цифрой и заменяем *00 на *0 и пробел - на 0 можно умножать.
Разбиваем на массив строк по пробелу и просматриваем список и ищем максимальную длину элемента - это результат.
Результат работы программы
Ответ
154 (Время не более 20 минут)