πЕГЭ · ИИ-репетитор12 предметов · задания ФИПИ
Главная → Информатика → Задания №24 → Задание i24-08

Задание №24 ЕГЭ Информатика с ответом и решением

Ответ: 7

Условие

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

Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

Файл с исходными данными к этому заданию в открытом банке не опубликован — разбирай подход по официальному решению ниже.

Подсказки — как подойти к решению

  1. Строка одна и состоит только из символов L, D и R. Просматривай её посимвольно и обнуляй счётчик всякий раз, когда очередной символ не равен L: искать нужно именно идущие подряд L.
  2. Текущую длину сравнивай с максимальной на каждом шаге, а не только в конце: нужный участок может стоять в самом начале или в самом конце строки, и там легко потерять символ.

Решение

##Приведём решение Андрея Субаева с помощью поисковых средств.

В программе блокнот нажмем сочетание клавиш CRTL и F, в поиск введем букву L. Будем добавлять в поиск букву L до тех пор, пока это дает результат.

Приведём решение Николая Чуркина (Тимашевск) на языке Python.

f = open('24.txt').readline()

k = 1

m = 1

for i in range(len(f)-1):

if f[i] == 'L' and f[i+1] == 'L':

k += 1

m = max(m, k)

else: k = 1

print(m)

В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 7.

Ответ: 7.

Приведём другое решение данной задачи на языке Pascal.

Для решения данной задачи будем посимвольно считывать текстовый файл. Объявим переменные: maxLen — максимальная длина последовательности, curLen — временное хранение длины последовательности, i — переменная для перебора всех символов, s — строка для работы с символами из файла. Алгоритм будет сравнивать значение текущего символа со значением предыдущего, и если символы не будут различаться и будут являться буквой L, то значение счетчика будет увеличиваться на 1.

Приведём решение данной задачи на языке Pascal.

var maxLen, curLen, i: integer;

s: string;

begin

assign(input, '24.txt');

readln(s);

maxLen := 1;

curLen := 1;

for i:=2 to Length(s) do

if (s[i] = s[i-1]) and (s[i] = 'L') then begin

curLen := curLen + 1;

if curLen > maxLen then

maxLen := curLen;

end

else

curLen := 1;

writeln(maxLen);

end.

В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 7.

Приведём решение Михаила Митрофанова (Владимир) на языке Python.

print(max(len(x) for x in(open('zadanie24_2.txt').readline().replace('D','R').split('R'))))

Типичные ошибки

Решить это задание в тренажёре

В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №24 по информатике