Определите максимальное количество идущих подряд символов, среди
Условие
Текстовый файл состоит не более чем из 1 200 000 символов X, Y, и Z. Определите максимальное количество идущих подряд символов, среди которых нет подстроки XZZY. Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Задание 24
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Будем последовательно считывать символы из файла, постоянно храня последние 4 введённых символа и проверяя, являются ли они строкой XZZY. Если подстрока XZZY не была встречена, прибавляем к счётчику k единицу, если искомая подстрока будет встречена — проверяем, является ли текущее значение счётчика k максимальным, обнуляем счётчик и прибавляем к нему значение 3, чтобы учитывать последние 3 символа подстроки XZZY. То есть в строке XZZYXX максимальное количество идущих подряд символов, не содержащих подстроку XZZY, равно 5: ZZYXX. Приведём решение данной задачи на языке PascalABC.var k, max: integer;c1, c2, c3, c4: char;f: text;begin assign(f,'C:\24.txt'); reset(f); c1 := '0'; c2 := '0'; c3 := '0'; c4 := '0'; k := 0; max := 0; while not Eof(f) do begin c4 := c3; c3 := c2; c2 := c1; read(f, c1); if (c4 = 'X') and (c3 = 'Z') and (c2 = 'Z') and (c1 = 'Y') then begin if k > max then max := k; k := 0; k := k + 3; end else begin k := k + 1; end; end; if k > max then max := k; writeln(max);end. В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ —
Осталось ещё 4 шага
Примечание. Путь к файлу необходимо указать…
Приведём другое решение на языке Python. with…
Приведём решение Александра Винника на языке…
Приведём решение Даниила Комлева на языке…
Бесплатно · займёт минуту