
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите максимальное количество идущих подряд символов, среди которых не более одной
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Решение. Будем посимвольно считывать файл. Каждую итерацию
Если будет встречена
Приведём решение данной задачи на языке PascalABC.
var
i, count, maxlen, countD, k: integer;
c: char;
f: text;
begin
assign(f,'C:\24.txt');
reset(f);
maxlen := 0;
count := 0;
countD := 0;
k := 0;
while not eof(f) do begin
read(f, c);
k := k + 1;
if c <> 'D' then begin
count := count + 1;
if count > maxlen then maxlen := count;
end
else if countD = 0 then begin
countD := 1;
i := k;
count := count + 1;
if count > maxlen then maxlen := count;
end
else if countD = 1 then begin
count := k - i;
i := k;
if count > maxlen then maxlen := count;
end;
end;
writeln(maxlen);
end.
Приведём решение данной задачи на языке Python.
f = open('24.txt')
s = f.readline()
k = []
mx = 0
for i in range(len(s)):
if s[i] == 'D':
k.append(i)
for j in range(len(k) - 2):
c = k[j + 2] - k[j] - 1
mx = max(mx ,c)
print(mx)
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 354.
Ответ: 354.
Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём другое решение Малова Никиты на языке Python.
f = open('24.txt')
a = f.readline().split('D')
m = 0
for i in range(len(a) - 1):
m = max(m,len(a[i])+len(a[i+1])+1)
print(m)
PDF-версии: