Задача 5829. Источник: Поляков. Задание КИМ 24
(Д. Статный) Текстовый файл 24-235.txt состоит не более чем из 106 символов и содержит только буквы XYZWOP. Определите самый часто встречающийся символ в комбинации X*P, который стоит на месте звездочки. В ответе укажите количество раз, сколько он встретился в данной комбинации.
Решение
Создадим массив/список из 26 элементов, где будем подсчитывать, сколько раз каждая буква встречалась в центре комбинации X*P, а потом найдем максимум в этом массиве.
Python
s = open('24-235.txt').readline()
k = [0] * 26
for i in range(1, len(s) - 1):
if s[i - 1] == 'X' and s[i + 1] == 'P':
k[ord(s[i]) - 65] += 1
print(max(k))
PascalABC
var
max, i: Integer;
k: Array [0..26] of Integer;
s: String;
f: TEXT;
begin
Assign(f, '24-235.txt');
Reset(f);
Readln(f, s);
for i := 0 to 25 do
k[i] := 0;
for i := 2 to s.Length - 1 do
if (s[i - 1] = 'X') and (s[i + 1] = 'P') then
k[ord(s[i]) - 65] := k[ord(s[i]) - 65] + 1;
max := k[0];
for i := 1 to 25 do
if k[i] > max then
max := k[i];
Writeln(max);
end.
C++
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f;
f.open("24-235.txt");
string s;
f >> s;
int k[26];
for (int i = 0; i < 26; i++)
k[i] = 0;
for (int i = 1; i < s.length() - 1; i++)
if (s[i - 1] == 'X' && s[i + 1] == 'P')
k[(int)s[i] - 65]++;
int max = k[0];
for (int i = 1; i < 26; i++)
if (k[i] > max)
max = k[i];
cout << max << endl;
}
Ответ
4683