Задача 6782. Источник: Поляков. Задание КИМ 24
(ЕГЭ-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