Загрузка…
Загрузка…
other / middle / tech_screening
Формат
online
Стадия
tech_screening
Когда
within_quarter
Длительность
—
01
Код
Напишите структуру односвязного списка с данными.
struct list
{
struct list* next;
int my;
};Первое задание в общем вебовском редакторе, без компилятора.
02
Код
Напишите функцию, которая на вход принимает два односвязных списка, а на выходе возвращает один список, отсортированный по данным из первых двух, без всякого копирования (in-place слияние).
list* joint(list* a, list* b)
{
list fst = { a }; list scd = { b }; list trd = {0};
list* res = &trd;
while (fst.next || scd.next) {
int ref = 0;
list* dst = 0;
bool flg = 0;
for (list* src = fst.next? &fst:&scd; src->next; src = src->next->next || flg? src->next : (flg = 1, &scd) ) {
if (src->next->my > ref) {
ref = src->next->my;
dst = src;
}
}
res->next = dst->next;
dst->next = res->next->next;
res = res->next;
}
return trd.next;
}Кандидат пытался уместить решение в два цикла из соображений сложности; интервьюер сказал, что не видит осмысленности в черновом коде, и предложил завершить собеседование.
Заметки
Кандидата нашла хедхантер из другой страны и предложила собеседование в Яндекс; заранее предупредили, что будут задачи. Профиль кандидата не вполне совпадал с вакансией, но в требуемой теме у него было полгода опыта. Интервью проходило в неудобном вебовском редакторе с подсказками и подсветкой «не в тему», без компилятора; кандидат работал на маке, на котором обычно не программирует, было много опечаток. Интервьюер почти ничего не спрашивал, наблюдал за кодом, заявил, что не видит осмысленности в черновом коде (в т.ч. не понял конструкцию с оператором «запятая» в for), и досрочно завершил собеседование. В постскриптуме автор приводит «причёсанный» вариант решения с двумя циклами и читаемыми именами.
Подготовка
Стоило подумать над задачей до того, как начать писать код (потратить время на минимальный дизайн решения). Готовьтесь писать код быстро в незнакомом веб-редакторе без компилятора — формат похож на «блиц». Автор предупреждает: высокооплачиваемые позиции предполагают жёсткую выбраковку кандидатов, эти условия нужно иметь в виду.
Стиль интервьюера
Интервьюер почти ничего не спрашивал — сразу выдал ссылку на веб-редактор с заданиями. Не предложил оценить трудоёмкость и не дал времени на дизайн решения. Наблюдал за процессом написания кода, заявил, что не видит осмысленности в черновом коде, и предложил завершить собеседование досрочно.