Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3584212
А
Аноним
12 марта 2026 09:44 · публичный вопрос
А
Аноним

Дано число N, затем элементы массива — N строк с именами. Затем записана ещё одна строка с именем. Сколько раз встречается эта строка в массиве?

Ответ нейросети
12 марта 2026 09:44

Задача: дано число N, далее N строк — имена, затем ещё одна строка со значением name_to_find. Нужно посчитать, сколько раз встречается name_to_find в массиве имен.

Пошаговое решение (пояснение по шагам)

  1. Прочитать N — число строк в массиве.
  2. Прочитать N строк и сохранить их в массив (например, names).
  3. Прочитать целевую строку target — имя, которое ищем.
  4. Пройтись по всем элементам массива и считать тех, которые равны target.
  5. Вывести полученное количество.

Дополнительно

  • По умолчанию сравнение учитывает регистр (без преобразований). Если нужно игнорировать регистр, можно привести и элементы массива, и target к одному регистру (например, к нижнему) и сравнивать.
  • Время выполнения: O(N). Потребная память: O(N) для хранения массива строк (если хотите экономить память, можно считать на этапе чтения, но здесь target известен только после прочтения N строк, поэтому проще хранить массив).

Пример

  • Ввод: 6 Alex Maria Ivan Alex Petr Alex Alex
  • Вывод: 3 (имя target = Alex встречается 3 раза)

Псевдокод read N names = пустой список for i = 1..N: read s append s к names read target count = 0 for each x в names: if x == target: count += 1 print count

Пример реализации на Python (ясный и компактный) def count_occurrences(): N = int(input()) names = [input().strip() for _ in range(N)] target = input().strip() count = sum(1 for x in names if x == target) print(count)

Если нужно привести к однообразному регистру (чтобы считать без учёта регистра): def count_occurrences_case_insensitive(): N = int(input()) names = [input().strip().lower() for _ in range(N)] target = input().strip().lower() count = sum(1 for x in names if x == target) print(count)

Пример реализации на C++ #include <bits/stdc++.h> using namespace std;

int main() { ios::sync_with_stdio(false); cin.tie(nullptr);

int N;
if (!(cin >> N)) return 0;
string s;
vector<string> names;
names.reserve(N);
string dummy;
getline(cin, dummy); // пропустим остаток строки после N
for (int i = 0; i < N; ++i) {
    getline(cin, s);
    names.push_back(s);
}
string target;
getline(cin, target);

int count = 0;
for (const auto& x : names) {
    if (x == target) ++count;
}
cout << count << "\n";
return 0;

}

Если хотите, могу адаптировать решение под конкретный язык программирования или формат входных данных (например, если имена могут содержать пробелы или если ввод идёт через файл).