Текстовый файл состоит не более чем из
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Для решения данной задачи будем посимвольно считывать текстовый файл. Объявим переменные: maxLen — максимальная длина последовательности, curLen — временное хранение длины последовательности, i — переменная для перебора всех символов, s — строка для работы с символами из файла. Алгоритм будет сравнивать значение текущего символа со значением предыдущего, и если символы не будут различаться и будут являться
Приведём решение данной задачи на языке Pascal.
var maxLen, curLen, i: integer;
s: string;
f: text;
begin
assign(f, '24.txt');
reset(f);
readln(f, s);
maxLen := 1;
curLen := 1;
for i:=2 to Length(s) do
if (s[i] = s[i-1]) and (s[i] = 'X') then begin
curLen := curLen + 1;
if curLen > maxLen then
maxLen := curLen;
end
else
curLen := 1;
writeln(maxLen);
end.
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 19.
Приведём решение Алексея Харитонова на языке Python.
f=open('24_demo.txt')
s=f.readline()
mx=1
cnt=1
for i in range(len(s)-1):
if s[i]=='X' and s[i+1]=='X':
cnt+=1
if cnt>mx:
mx=cnt
else:
cnt=1
mx = max(cnt, mx)
print(mx)
Приведём однострочное решение на языке Python.
print(max(map(len, open('24_demo.txt').readline().replace('Z', ' ').replace('Y', ' ').split())))
Приведём решение Юрия Лысакова на языке Python.
f = open('24_demo.txt')
s = f.read()
s1 = 'X'
while s1 in s:
s1 += 'X'
print(len(s1) - 1)
Приведём решение Максима Григорьева на языке Python.
f = open('24_demo.txt')
s = f.read()
for i in 'YZ':
s = s.replace(f'{i}', '*')
s = s.split('*')
print(len(max(s, key=len)))
Приведём решение Тимофея Софронова на языке Python.
from re import finditer
f = open('24_demo.txt').readline()
reg = 'X+'
print(max([len(x.group()) for x in finditer(reg,f)]))
Ответ: 19.

