Текстовый файл состоит не более чем из
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Для решения данной задачи будем посимвольно считывать текстовый файл. Объявим переменные
Приведём решение данной задачи на языке Pascal.
var k, max: integer;
c1, c2: char;
f: text;
begin
assign(f,'C:\24.txt');
reset(f);
c1 := '0';
c2 := '0';
k := 1;
max := 0;
while not Eof(f) do begin
c2 := c1;
read(f, c1);
if (c1 <> c2) and (c2 <> '0') then begin
k := k + 1;
end
else begin
if k > max then
max := k;
k := 1;
end;
end;
if k > max then
max := k;
writeln(max);
end.
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 35.
Ответ: 35.
Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Николая Чуркина (Тимашевск) на языке Python.
f = open('24.txt').readline()
k = 1
m = 0
for i in range(1, len(f)):
if f[i] != f[i-1]:
k += 1
else:
m = max(m, k)
k = 1
m = max(m, k)
print(m)
Приведём решение Максима Григорьева на языке Python.
from itertools import permutations
with open('24_demo.txt') as f:
s = f.read()
pod = [''.join(x) for x in permutations('XYZ', 2)]
x, counter, c_max = 0, 0, 0
for i in range(len(s)):
if s[i + x:i + 2 + x] in pod:
counter += 1
x = 2
else:
c_max = max(c_max, counter)
counter, x = 0, 0
print(c_max)
Приведём решение Юрия Красильникова на языке Python.
s = open('24_demo.txt').readline()
a = ''.join(['*' if s[i]!=s[i-1] else ' ' for i in range(1,len(s))]).split()
print(max(len(x) for x in a)+1)
Приведём решение Тимофея Софронова на языке Python.
f=open('24_demo.txt').readline()
m = 0
for i in range(0,len(f)):
for j in range (i+m, len(f)):
c = f[i:j+1]
if all(not x in c for x in['XX','ZZ','YY']):
m = max(m,len(c))
else: break
print(m)
Приведём решение Михаила Глинский на языке Python.
s=open('24_demo.txt').readline()
s=s.replace('XX','X X').replace('YY','Y Y').replace('ZZ','Z Z')
s=s.replace('XX','X X').replace('YY','Y Y').replace('ZZ','Z Z')
m=[len(x) for x in s.split()]
print(max(m))
Приведём решение Екатерины Паркаевой на языке С.
#include int main() { FILE *f; int mk = 0, k = 0; char s = 'Q', p_s = 'Q'; if((f = fopen(«24_demo.txt", "r")) == NULL) { printf("file not open"); return 1; } while(!feof(f)) { if(p_s != s) k++; else { if(mk < k) mk = k; k = 1; } p_s = s; fscanf(f, "%c", &s); } fclose(f); printf("%d", mk); return 0; }
Приведём решение Севы Тимофеева на языке С++.
#include #include using namespace std; int main () { ifstream fin("24_demo.txt"); char a,b; int s=0; int f=0; fin >> a; while(fin >> a){ if(a != b)f++; if(f>s)s=f; if(a == b)f=1 ; b=a; } cout << s << endl; } }

