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

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

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

(Д. Статный) Текстовый файл 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

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

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

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

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