Контур.Кампус

  22 – 24 ноября 2013    Мероприятие завершено  

Тестовое задание

При подготовке к новому Кампусу, ты можешь познакомится с тестовыми заданиями предыдущих школ. Ниже — тестовое задание с осеннего Кампуса 2013.

В одном файле — некое литературное произведение. В другом — в каждой строке поисковый запрос.

Вам нужно для каждого запроса вывести номера всех строк исходного произведения, в которых содержатся все слова из поискового запроса. Если таких строк слишком много, выведите 20 самых первых. Для каждого запроса номера строк нужно выводить в порядке их возрастания.

Детали

Имена файлов — с произведением и с поисковыми запросами будут передаваться вашей программе в качестве аргументов командной строки именно в таком порядке. Оба файла будут в формате простого текста в кодировке UTF-8.

Можно считать, что литературное произведения такого размера, что может поместиться в оперативной памяти целиком.

Примеры файлов здесь

Слово может состоять из русских или латинских букв или знака подчеркивания или цифр. Сравнивать слова нужно регистронезависимо.

Нумерация строк осуществляется с нуля.

Результат ваша программа должна напечатать на консоль, по одной строке на каждый запрос. В каждой такой строке — номера строк исходного произведения, разделенные запятой.

Пример ниже должен прояснить все тонкие моменты в условии:

Текст:

0: Foo foo bar

1: Bazz bar foo

2: foobar

Запрос: XYZ

Ответ:

Запрос: Baz

Ответ:

Запрос: foo

Ответ: 0,1

Запрос: FOO FOO FOO FOO

Ответ: 0,1

Авторское решение тестового задания (.zip, 1 Кб)

Участники

Присоединяйтесь к нам, и не пропустите новые события

Остались вопросы?

Пиши на kontur-student@kontur.ru
Я постараюсь ответить как можно быстрее :)