Второй этап отбора в Яндекс начался со звонка рекрутера Марии и рассказом о возможной позиции. Затем от неё пришло письмо со ссылкой на подробное описание вакансии и тестовые задания. О первом этапе отбора была предыдущая статья.
Итак, для прохождения второго этапа отбора в Яндекс мне прислали 4 задачки для того, чтобы я мог провести весёлые выходные.
Первая задачка.
Написать регулярное выражение для извлечения домена из урла. К задачке приложена таблица с 18 адресами для тестов. Среди адресов: канал на Ютуб, сайт знакомств, адрес торрент трекера и даже один довольно популярный недетский сайт. Чувство юмора у ребят явно хорошее. Выполнил эту задачку на PHP.
Вторая задачка.
Импортировать файл JSON(ссылка прилагается). Обработать пары значений некоторого множества кортежей, содержащих информацию о магазине для каждой покупки. На выходе нужен массив, состоящий из трех списков со всеми товарами из одного магазина. Дело вроде нехитрое, но обязательным условием является решение задачи на Python. На тот момент о Python я знал лишь, что есть два лагеря людей, которые спорят между собой как правильно говорить «пАйтон» или «питон».
Почитал о синтаксисе языка. Написал код, переписал код, протестировал код, переписал код, протестировал. Всё отлично. Вот только уже понедельник, а впереди ещё две задачки.
Отправил то, что успел сделать. Прошло две недели…
Уже почти забыл обо всём. Но мне вновь написала Мария и попросила всё-таки выполнить и отправить им задания №3 и №4 до конца недели.
Третья задачка.
Дан файл csv, в котором 250000 записей, содержащих оценки огромного количества задач. Оценки давали несколько сотен исполнителей. Кроме того есть правильные оценки. Необходимо выявить тех исполнителей, кто хуже всего справился с задачей. Оценки имеют бинарный характер. Необходимо предложить и подробно описать свои метрики, а также рассказать на какие показатели и почему мы ориентируемся.
Задача довольно интересная. Пишите в комментариях, если хотите, чтобы я рассказал о ней и своем решении более подробно. Спойлер – здесь без Python тоже не обошлось.
Четвертая задачка.
Дано: 701827 строк в файле «zadanie4.txt»(Вес файла около 44,5 Мб). Строки содержат информацию о времени, которое затрачивают исполнители на задания, количество микрозаданий в задании. Также известно, что во время выполнения заданий исполнители могут заниматься посторонними делами: гулять, пить кофе, готовить обед, разговаривать по телефону и тд. За 30 секунд рабочего времени исполнители получают оплату равную Z. Вопрос: какой может быть размер справедливой оплаты за одно микрозадание? Решение подробно описать.
Задача также интересная и весьма непростая. Пишите в комментариях, если хотите, чтобы я рассказал о ней и своем решении более подробно. Снова спойлер – и здесь тоже решение было сделано на Python.
Решение задачек было отправлено мною в срок. И уже к вечеру того самого понедельника мне позвонила Мария, и сообщила, что меня приглашают пройти следующий этап отбора - Skype-собеседование с возможным руководителем уже завтра.
Об этом этапе в следующем рассказе, который выйдет после того как эта история соберёт 150+ лайков.