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

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

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

(ЕГЭ-2023) Текстовый файл 24-264.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита и цифры. Определите максимальную длину подстроки, в которой ни одна буква не стоит рядом с буквой и ни одна цифра не стоит рядом с цифрой.

Решение

Просматриваем строку со второго символа. Если текущий и предыдущий символы принадлежат разным группам, цепочка продолжается, иначе текущий символ является первым в новой цепочке.

Python

s = open('24-264.txt').readline()
k = 1
mx = 1
d = '0123456789'
for i in range(1, len(s)):
    if (s[i] in d) != (s[i - 1] in d):
        k += 1
        mx = max(mx, k)
    else:
        k = 1
print(mx)

PascalABC

var
    k, max, i: Integer;
    s, d: String;
    f: TEXT;
begin
    Assign(f, '24-264.txt');
    Reset(f);
    Readln(f, s);
    k := 1;
    max := 1;
    d := '0123456789';
    for i := 2 to s.Length do
        if (d.IndexOf(s[i]) = -1) <> (d.IndexOf(s[i - 1]) = -1) then
        begin
            k := k + 1;
            if k > max then
                max := k;
        end
        else
            k := 1;
    Writeln(max);
end.

C++

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream f;
    f.open("24-264.txt");
    string s, d= "0123456789";
    f >> s;
    int k = 1, max = 1;
    for (int i = 1; i < s.length(); i++)
        if ((d.find(s[i]) == -1) != (d.find(s[i - 1]) == -1))
        {
            k++;
            if (k > max)
                max = k;
        }
        else
            k = 1;
    cout << max << endl;
}

Ответ

18

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

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

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

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