Твое задание
Для выполнения задачи вам нужно будет создать реализацию книги заказов. Он будет проверяться на правильность следующим образом:
Изначально у вас пустая книга заказов. Затем к книге применяются обновления, и книга должна отвечать на запросы, как описано в разделе «Формат входных / выходных данных» ниже.
Требования к задаче
Создайте исполняемый файл .jar . Вы можете использовать версию Java до 15 включительно . Имейте в виду, что если вы используете любую версию Java старше 15, некоторые классы, которые были включены в JRE в предыдущих версиях (например, javafx ), недоступны в JRE 15 . В этом случае решение завершится ошибкой за исключением первого тестового примера.
Прочтите входные данные из файла с именем input.txt, который будет расположен в текущем рабочем каталоге. Пожалуйста, обращайтесь к файлу по имени, например, «input.txt», а не «/home/user/input.txt», чтобы он был автоматически преобразован в текущий рабочий каталог.
В результате выполнения ваш файл .jar должен создать файл, содержащий выходные данные, с именем output.txt в той же папке (рабочем каталоге).
Производительность вашего решения имеет значение! Обратите внимание, что предел памяти для тестов установлен на 128 МБ ( -Xmx128M ).
Файл решения .jar должен содержать исходный код.
После того, как вы решите задачу, отправьте ее через форму в разделе ниже (пожалуйста, не публикуйте ее где-либо еще). Ваша заявка будет автоматически проверена, поэтому необходимо строго соблюдать формат входных / выходных данных. Если ваш файл .jar не является исполняемым или не содержит исходного кода, он не будет принят.
Мы ценим кандидатов, которые пытаются обдумать решение перед тем, как отправить его как готовое - пожалуйста, не присылайте много похожих решений со случайными изменениями.
Входной файл
Каждая строка в файле может быть одной из следующих:
Обновления книги лимитных заявок в следующем формате:
u, <цена>, <размер>, ставка - установите размер ставки <цена> на <размер> (доли общего размера теперь предлагаются по цене)
u, <цена>, <размер>, ask - установить размер запроса с <price> на <size>
Запросы в следующем формате:
q, best_bid - распечатать лучшую цену и размер ставки
q, best_ask - вывести лучшую цену предложения и размер
q, size, <price> - размер печати по указанной цене (бид, аск или спред).
И рыночные ордера в следующем формате:
o, buy, <size> - удаляет <size> акции из асков, самые дешевые.
o, sell, <size> - убирает из ставок <size> акции, самые дорогие
В случае заказа на покупку это похоже на выход на рынок (при условии, что вы хотите купить там <размер> одинаковых предметов, и что все экземпляры имеют одинаковое качество, поэтому цена является единственным фактором) - вы покупаете <размер> единиц по самой низкой доступной цене.
Запросы, рыночные ордера и обновления книги лимитных ордеров выполняются в произвольной последовательности. Каждая строка в файле является одной из трех и заканчивается символом новой строки UNIX - \ n .
Диапазон вводимых значений:
Цена - 1 ... 10 9
Размер - 0 ... 10 8
Пример входного файла:
u,9,1,bid
u,11,5,ask
q,best_bid
u,10,2,bid
q,best_bid
o,sell,1
q,size,10
u,9,0,bid
u,11,0,ask
Выходной файл
Пример выходного файла (для этого входного файла):
9,1
10,2
1
Формат входных / выходных данных
Как проверить свое решение
Перед отправкой раствора рекомендуется проверить, как он работает на вашей стороне. Пожалуйста, следуйте инструкциям ниже:
В той же папке, где находится your_solution.jar (имя файла jar не имеет значения), создайте другую папку, например, data (опять же, имя не имеет значения)
Создайте файл input.txt с содержимым, описанным в разделе Формат входных / выходных данных.
Поместите input.txt в папку данных
В папке данных откройте командную строку. Запустите java -Xmx128M -jar ../your_solution.jar .
Если ваше решение работает правильно, в папке данных должен появиться файл output.txt с содержимым, идентичным тому, что показано в разделе Формат данных ввода / вывода .
Дополнительная информация
Если ваше решение пройдет тесты, будет измерено время его выполнения. Думаешь, ты сможешь сделать это лучше? Ну ничто не мешает прислать очередное решение =)
Обратите внимание, что время выполнения может колебаться в диапазоне + - 300 ... 400 мс для одного и того же решения.
У нас также есть таблица лидеров , но она в основном создана для развлечения, и ваш рейтинг не влияет напрямую на процесс собеседования или ваши шансы получить работу. Там появится ваше решение с наивысшим баллом.
Вам нужна дополнительная информация для выполнения этой задачи? Если да - не стесняйтесь спрашивать, пишите: hr@bookmap.com
Попытался сделать - это тестовое задание у меня не получилось, кто сталкивался с таким тестовым заданием, и у кого получилось а у кого не получилось, буду признателен если кто-то подскажет как сделать такое тестовое задание.
Игорь Гетман
23 уровень
Привет всем!!! попытался устроиться на работу а мне дали делать такое тестовое задание.
Комментарии (21)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Михаил Велидчук System Engineer в Arcos LTD
21 ноября 2021, 17:20
Нормальное тестовое, нормально прописаны условия, даже на моем мизерном уровне такое решается не особо сложно... Согласен про джуна, это уровень студента...
Сорри, не посмотрел ваш уровень... Дойдите хотя-бы до 20го что-ли... Там есть и работа с файлами и все остальное...
0
Павел
17 ноября 2021, 07:47
Сомнительно, чтобы из этого задания могли бы взять на работу, даже Джуном (если, конечно, время не ограничено 2 часами). Думаю, что это реклама трейдерского движка)).
+2
hidden #2809050
15 ноября 2021, 18:54
Вот про твою задачу на Гитхабе нашел 🙃 Не вникал, что это и что нужно тебе, просто нашел в поиске по условиям твоей задачи репозиторий с аналогичным текстом.
+3
hidden #1811171
15 ноября 2021, 14:48
вы наверное хотели попросить что бы за вас задание сделали?)
+2
Игорь Гетман
15 ноября 2021, 15:22
Нет, просто чтобы подсказали!!!!!
+2
wan-derer.ru
15 ноября 2021, 13:52
Почти все сталкивались с тестовыми заданиями.
Делают их обычно руками.
+4
Игорь Гетман
15 ноября 2021, 14:30
Это ясное дело, что руками, не ногами же, я имел ввиду такое тестовое задание делал кто-то или нет чтобы подсказали, как сделать такое тестовое задание.
0
Сергеев ВикторMaster
15 ноября 2021, 14:32
попробуйте задать более конкретный вопрос, иначе единственный ответ, который можно вам дать - взять и сделать
+2
Игорь Гетман
15 ноября 2021, 14:50
А какой конкретный вопрос задать подскажи если знаешь лучше меня? Я написал то, что посчитал нужным для того если кто-то сталкивался с таким тестовым заданием!!!!
0
Сергеев ВикторMaster
15 ноября 2021, 15:24
тогда просто берешь клавиатуру, печатаешь символы, потом запускаешь компилятор и собираешь код в проект = профит )
+3
Игорь Гетман
15 ноября 2021, 15:28
Спасибо большое сейчас попробую
0
Alexandr
15 ноября 2021, 15:32
Вот негодяи, как они посмели!)
Я думаю тебе намекают на то что бы ты описал что уже сделал, и на каком этапе столкнулся с проблемами, и после этого тебе помогут разобраться...
А по факту ты скинул условие задачи, и просишь абстрактную подсказку, и в итоге нарываешься на абстрактный ответ - взять и сделать
- Начни с создания jar файла, как написано в условии, не знаешь как - гугли,
возникли проблеммы -спрашивай конкретно...
Далее поэтапно...
- Прочтите входные данные из файла с именем input.txt
не знаешь как -гугли, возникли проблеммы -спрашивай конкретно...
+8
Игорь Гетман
15 ноября 2021, 15:39
спасибо большое, сейчас попытаюсь!!!
0
Java Rush_3
20 ноября 2021, 00:58
Нашёл у кого спрашивать. Здесь сидят такие же недопрограммисты как и ты, я, и все остальные пациенты JavaRush.
P.S Некоторые из них любят из себя корчить - профи, хотя по факту - олени
+1
Сергеев ВикторMaster
20 ноября 2021, 01:20
хм ) добро пожаловать в клуб )
+5
Павел
20 ноября 2021, 23:03
Лично я - кот
0
hidden #2809050
21 ноября 2021, 08:57
Я, например, профи и не скрываю этого! Посмотри мое собеседование и не торопись с выводами про Джавараш.
+4
Java Rush_3
21 ноября 2021, 09:13
Насколько я помню эту сказку, после этого собеса, тебе сказали: "гуляй Вася отседова"
0
hidden #2809050
21 ноября 2021, 09:15
Бухой был, а так бы взяли. Для джуна достаточно выучить слово "престидижитатор" и знание иностранного языка!!!
+1
Java Rush_3
22 ноября 2021, 03:27
Программист - алкоголик, ну это уже ни в какие рамки...
0
Павел
22 ноября 2021, 06:37
Вроде Адам Смит говорил: "Научи попугая говорить: "Спрос и предложение" и перед вами готовый экономист"
Для программиста я хорошей аналогии с попугаем не придумал, все больше на обезьян тянуло 🐒
0