Программное решение задач ЕГЭ по информатике

Задача 6050. Источник: Поляков. Задание КИМ 24

Страница задачи 6050

(А. Богданов) Текстовый файл 24-240.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита. . Найдите максимальную длину подстроки, не содержащей подстрок, отличающихся от «DANOV» лишь на одну букву.

Решение

Посимвольно просматриваем строку и анализируем группу из пяти символов на количество совпадающих букв. Если нашли четыре совпадающих буквы, то текущая последовательность прерывается, а новая последовательность начинается с последних четырех символов прерывающей последовательности.

Python

s = open('24-240.txt').readline()
k = 4
mx = 4
s1 = 'DANOV'
for i in range(len(s) - 4):
    z = 0
    for j in range(5):
        if s[i + j] == s1[j]:
            z += 1
    if z == 4:
        k = 4
    else:
        k += 1
        mx = max(mx, k)
print(mx)

PascalABC

var
    max, k, i, j, z: Integer;
    s, s1: String;
    f: TEXT;
begin
    Assign(f, '24-240.txt');
    Reset(f);
    Readln(f, s);
    k := 4;
    max := 4;
    s1 := 'DANOV';
    for i := 1 to s.Length - 4 do
    begin
        z := 0;
        for j := 0 to 4 do
            if s[i + j] = s1[j + 1] then
                z := z + 1;
        if z = 4 then
            k := 4
        else
        begin
            k := k + 1;
            if k > max then
                max := k;
        end;
    end;
    
    Writeln(max);
end.

C++

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream f;
    f.open("24-240.txt");
    string s, s1 = "DANOV";
    f >> s;
    int k = 4, max = 4;
    for (int i = 0; i < s.length() - 4; i++)
    {
        int z = 0;
        for (int j = 0; j < 5; j++)
            if (s[i + j] == s1[j])
                z++;
        if (z == 4)
            k = 4;
        else
        {
            k++;
            if (k > max)
                max = k;
        }
    }
    cout << max << endl;
}

Ответ

229549

Отправить замечание по решению

Код по которому имеется замечание:

Ваш вариант кода:

Комментарий: