В словаре подсказок Яндекс Поиска лежат запросы queries (повторы — отдельные запросы). Пользователи набирают начала typed.
Для каждой строки из typed верните, сколько запросов из queries начинаются с неё. Пустое начало подходит ко всем запросам.
В работе: Подсказки решают, показывать ли «ещё N вариантов»: словарь на 10⁵ запросов и 10⁵ наборов в минуту, проверка `startswith` по всему словарю — 10¹⁰ сравнений.
Пример 1
Ввод
queries = ["погода", "погода завтра", "почта", "поезд", "погода"] typed = ["пог", "по", "погода з", "так"]
Вывод
[3, 5, 1, 0]
«пог» — три запроса, из них два одинаковых.
Пример 2
Ввод
queries = ["а"] typed = [""]
Вывод
[1]
Пустое начало подходит ко всему.
Ограничения
- 1 ≤ длина
queries≤ 10⁵ - 1 ≤ длина
typed≤ 10⁵ - суммарная длина строк ≤ 10⁶
- Лимит — 2 с на тест (2500 мс).
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def prefix_counts(queries, typed):
Источник: наша задача на данных Яндекса. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.