Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 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;

}

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

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Дано число N, затем элементы массива — N строк с именами. Затем записана ещё одна строка с именем. Сколько раз встречается эта строка в массиве?
Задача: дано число 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 using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; if (!(cin >> N)) return 0; string s; vector 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; } Если хотите, могу адаптировать решение под конкретный язык программирования или формат входных данных (например, если имена могут содержать пробелы или если ввод идёт через файл).