Кратко о задаче
- Ввод: сначала число N, затем N строк с именами, затем ещё одна строка — имя для поиска.
- Нужно вывести массив индексов (0-based), на которых встречается это имя в самом массиве из N имен. Если совпадений нет — вывести пустой массив.
Пошаговый разбор
- Считать N.
- Считать N строк и сохранить их в массив names.
- Считать целевое имя target.
- Пройти по массиву и собрать индексы i, где names[i] == target.
- Вывести полученный список индексов. Он уже будет в формате Python-подобного списка, например [2] или [].
Сложность
- Время: O(N), так как проходим по всем элементам массива.
- Память: O(K), где K — количество вхождений целевого имени (максимум N).
Замечание по примеру
- В приведённом примере первый ввод выглядит так: N=5, массив = ["Паша", "Нина", "Оля", "Коля", "Рома"], целевое имя = "Оля".
- В этом случае совпадение встречается на индексе 2, поэтому правильный вывод: [2].
- В примере же указано [0, 2], что противоречит условию, если считать массив именно из N строк без учёта целевой строки. Возможно, там опечатка. Второй пример ([]), совпадает с ожиданием.
Пример реализации на Python n = int(input().strip()) names = [input().strip() for _ in range(n)] target = input().strip()
indices = [i for i, name in enumerate(names) if name == target] print(indices)
Как запустить
- Введите сначала число N.
- Затем введите N имён по одной строке.
- Затем введите имя для поиска.
- Программа выведет, например: [2] или [].
Если нужна реализация на другом языке (JavaScript, C++, Java и т. д.), скажи — адаптирую под нужный язык.