Последовательности (цепочки) символов
24_1: Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ: 
Задание выполняется с использованием прилагаемых файлов
Текстовый файл состоит не более чем из 106 символов X, Y и Z.
Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
Для выполнения этого задания следует написать программу.
Ответ: 35
Паскаль:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| var
f: text;
i, k, max: integer;
s: string;
begin
assign(f, 'D:\24.txt');
reset(f);
readln(f, s);
max := 1;
k := 1; // кол-во подряд идущих
for i := 2 to length(s) do
begin
if s[i] <> s[i - 1] then
begin
inc(k);
if k > max then max := k;
end
else k := 1;
end;
write(max)
end. |
Python:
1
2
3
4
5
6
7
8
9
10
11
| f=open('D:/24.txt')
s=f.readline()
m=1
k=1
for i in range(1,len(s)):
if s[i]!=s[i-1]:
k+=1
m=max(k,m)
else:
k=1
print(m) |
24_2: 
Задание выполняется с использованием прилагаемых файлов
В текстовом файле (выше по ссылке) находится цепочка из символов латинского алфавита A, B, C.
Найдите длину самой длинной подцепочки, состоящей из символов C.
Ответ: 0
PascalABC.net:1
2
3
4
5
6
7
8
9
10
| begin
assign(input, 'k7-0.txt');
var s: string;
var c: string;
read(s);
c := 'C';
while c in s do
c := c + 'C';
print(length(c) - 1)
end. |
Python:
способ 1:
1
2
3
4
5
6
7
8
| with open("k7-0.txt") as Fin:
s = Fin.readline()
c = 'C'
while c in s: # ищем CC, потом CCC и т.д
c += 'C'
print(len(c)-1 )
# минус 1, чтобы убрать лишнюю (последнюю добавленную С) |
способ 2:
1
2
3
4
5
6
7
8
9
10
11
| f=open('k7-0.txt')
s = f.readline() # считали строку
m = 0 # макс длина цепочки
l = 0 # начальная длина цепочки
for i in range(0,len(s)):
if s[i]=='C':
l+=1
m = max(l,m) # перезаписали Макс длину
else:
l = 0 # сбрасываем счетчик
print(m) |
24_3: 
Задание выполняется с использованием прилагаемых файлов
В текстовом файле (выше по ссылке) находится цепочка из символов латинского алфавита A, B, C, D, E.
Найдите длину самой длинной подцепочки, состоящей из символов A, B или C (в произвольном порядке).
Ответ: 16
PascalABC.net:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| begin
assign(input, 'k7a-1.txt');
var s: string;
read(s);
var k := 0;
var maxim := 0;
for var i := 1 to length(s) do
if s[i] in 'ABC' then
begin
k += 1;
if k > maxim then maxim := k
end
else k := 0 ;
write(maxim)
end. |
Python:
1
2
3
4
5
6
7
8
9
10
11
| f = open('k7a-1.txt')
s = f.readline() # считали строку
m = 0 # макс длина цепочки из "A,B,С"
l = 0 # начальная длина цепочки из "A,B,С"
for i in range(0,len(s)):
if s[i] in'ABC':
l+=1
m = max(l,m) # перезаписали Макс длину
else:
l = 0 # другая буква - сбрасываем счетчик
print(m) |
24_4: 
Задание выполняется с использованием прилагаемых файлов
В текстовом файле (по ссылке выше) находится цепочка из символов латинского алфавита A, B, C, D, E, F.
Найдите длину самой длинной подцепочки, не содержащей гласных букв.
Ответ: 20
PascalABC.net:
Вариант 1:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| begin
assign(input, 'k7a-6.txt');
var s: string;
read(s);
var k := 0;
var maxim := 0;
for var i := 1 to length(s) do
if s[i] in 'BCDF' then
begin
k += 1;
if k > maxim then maxim := k
end
else k := 0 ;
write(maxim)
end. |
Вариант 2:
1
2
3
4
5
6
7
8
9
10
11
12
| begin
var s := readAllText('d:\k7a-6.txt').Trim;
var (k, max) := (0, 0);
foreach var c in s do
if not (c in 'AE') then
begin
k += 1;
if k > max then max := k;
end else
k := 0;
print(max)
end. |
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
| with open("k7a-6.txt") as F:
s = F.readline() # считали строку
k = 0 # начальная длина цепочки из "B,C,D,F"
Max = 0 # макс длина цепочки из "B,C,D,F"
for c in s:
if c in 'BCDF':
k += 1
if k > Max:
Max = k # перезаписали Макс длину
else:
k = 0 # другая буква - сбрасываем счетчик
print(Max) |
24_5: 
Задание выполняется с использованием прилагаемых файлов
В текстовом файле (по ссылке выше) находится цепочка из символов латинского алфавита A, B, C, D, E.
Найдите максимальную длину цепочки вида EABEABEABE… (состоящей из фрагментов EAB, последний фрагмент может быть неполным).
Ответ: 7
Решение:
24_6: 
Задание выполняется с использованием прилагаемых файлов
В текстовом файле (по ссылке выше) находится цепочка из символов латинского алфавита A, B, C, D, E.
Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:
1-й символ – один из символов B, C или D;2-й символ – один из символов B, D, E, который не совпадает с первым;3-й символ – один из символов B, C, E, который не совпадает со вторым.
Ответ: 1280
Комментарии
Отправить комментарий