Собеседование в Яндекс Фронтенд 2024

  Рет қаралды 1,704

Alexandr Kazakov

Alexandr Kazakov

Күн бұрын

Первый этап в Яндекс на должность Разработчика Интерфейсов(фронтенд), 2024 год. Этап посвящен знанию языка, в моем случае это JavaScript.
Таймкоды:
00:00 Первая задача
15:10 Вторая задача
32:57 Третья задача
44:26 Четвертая задача

Пікірлер: 16
@siberian-crystall
@siberian-crystall 2 күн бұрын
привет! посмотрел с интересом, в процессе накидывал решения :) 1 задачу сделал бы так: function get(obj, chain) { return chain?.split('.').reduce((acc, key) => acc?.[key], obj); } 2 можно тоже в одну строку, гораздо быстрее (для достаточно длинных строк - на порядок) будет регуляркой: function rle(input) { return input.match(/(\w)\1*/g).reduce((acc, v) => acc += v[0] + (v.length > 1 ? v.length : ''), ''); } 3 ваше решение нерабочее по нескольким причинам: интерпретатор ругнётся на return throw (уже писали в комментах) + если после неудачной попытки будет успешная - первый Promise из call stack всё равно не будет заресолвлен. я бы реализовал так: function get(url) { return new Promise(async (resolve, reject) => { let retries = 5; while (retries) { await fetch(url) .then((res) => { if (!res.ok) throw new Error(); // сюда попадёт, например, ошибка 500 resolve(res); retries = 0; }) .catch((e) => (retries--)); } reject('Retry count exceeded'); }); } 4 function isMonotonic(array) { return array.reduce((acc, value, index) => { if (acc.result && index) { const delta = Math.sign(value - array[index - 1]); if (acc.sign && delta && delta != acc.sign) acc.result = false; acc.sign = delta; } return acc; }, { sign: 0, result: true }).result; }
@alexandrkazakov723
@alexandrkazakov723 Күн бұрын
Ваше решение второй задачи вызывает вопросы, сложно написать такую регулярку на собесе и не ошибиться. Также мне кажется, что столь короткая запись может быть непонятна интервьюверу и это в минус пойдет.
@user-jf2ui2qy1y
@user-jf2ui2qy1y 15 күн бұрын
Первая задача. Можно в одну строчку сделать или наоборот подробнее разложить. Ненавижу читать рекурсию + я могу ошибаться, но у тебя !object[array[i]] вернет undefined для null function get(initialObject, path) { return path.split('.').reduce((currentObject, currentKey) => { if (!(currentKey in currentObject)) { return undefined; } return currentObject[currentKey]; }, initialObject); }
@user-rn5cl2fr8b
@user-rn5cl2fr8b 15 күн бұрын
В задаче про массив забавные условия на 7-8 строках (присвоение вместо сравнения) ) Понятно, что это просто опечатка, но собеседующая добрая (или не обратила внимание).
@user-gz5ky9rq6y
@user-gz5ky9rq6y Күн бұрын
4 задача как вариант. function isMonotonic(num) { const mono1 = [...num].sort((a, b) => a - b); const mono2 = [...num].sort((a, b) => b - a); if (mono1.join('') === num.join('') || mono2.join('') === num.join('')) { return true; } return false; }
@user-jx9rw3ip6w
@user-jx9rw3ip6w 15 күн бұрын
задачи простые. сложно походу только на собес попасть. не.. ну понятно, что простые для тех кто задрачивал leetcode.
@alexandrkazakov723
@alexandrkazakov723 15 күн бұрын
Там ещё второй алгоритмический этап, две задачи были, также не сложные, но из-за волнения всякое может случиться…
@enoughfornow7310
@enoughfornow7310 23 күн бұрын
ага ага ага ага ага ага угу угу угу угу угу угу ага ага ага ага
@SergiyAntonyuk_PhD
@SergiyAntonyuk_PhD 13 күн бұрын
Третья задача: if(counter === 5) { throw new Error("3aдданный URL недоступен") ; } else { ...} return при выбрасывании ошибки не нужен (его наличие вызовет ошибку) Четвертая задача: function isMonotonic(numbers) { if (numbers.length 0 && numbers[i] < numbers[i - 1]) || (type < 0 && numbers[i] > numbers[i - 1]) || (type == 0 && numbers[i] !== numbers[i - 1]) ) { return false; } } return true; }
@siberian-crystall
@siberian-crystall 2 күн бұрын
ваше решение вернёт false для массива [1, 1, 2, 3], потому что определяет направление монотонности только по паре первых значений
@MyNameIsEd2d2
@MyNameIsEd2d2 25 күн бұрын
Братец, а остальные этапы писать будешь? Я про алгосекцию и платформу?
@alexandrkazakov723
@alexandrkazakov723 25 күн бұрын
Привет, второй этап я также успешно прошел, там было две алгоритм задачки, но его к сожалению я его не записал, можешь в тг моем увидеть что за задачи там были. Третий этап полностью разговорный, там не сильно интересно, вопросы про опыт и на софт скиллы
@user-rn5cl2fr8b
@user-rn5cl2fr8b 15 күн бұрын
​@@alexandrkazakov723у меня было 4 финала и на одном из них так же были задачки. на 3-х других только разговоры. Так-что от команды все-таки зависит.
@user-ei5ve3zl7k
@user-ei5ve3zl7k 14 күн бұрын
@@alexandrkazakov723 Тебе предложили офер в итоге? И какая вилка была если не секрет
@user-kj9mm2gc3r
@user-kj9mm2gc3r 12 күн бұрын
@@alexandrkazakov723 как найти ваш тг?
@OmonOmon-tr4du
@OmonOmon-tr4du Күн бұрын
Типатиптатптаитипатипатипатипатипа
Как я НЕ прошёл собеседование в Яндексе | ОБЛОМЫ #1
5:33
Факультет Программирования
Рет қаралды 1 М.
OMG😳 #tiktok #shorts #potapova_blog
00:58
Potapova_blog
Рет қаралды 3,8 МЛН
Что дальше после разработчика в Google
5:53
Саша Лукин
Рет қаралды 35 М.
virtual, override, final
4:52
Леонід Українець
Рет қаралды 17
SENIOR В 20 ЛЕТ / Frontend React мок-собеседование
1:46:13
Изучение C++ для начинающих / #1 - Введение в язык C++ с нуля
5:34
Школа itProger / Программирование
Рет қаралды 461 М.
Will the battery emit smoke if it rotates rapidly?
0:11
Meaningful Cartoons 183
Рет қаралды 33 МЛН
Secret Wireless charger 😱 #shorts
0:28
Mr DegrEE
Рет қаралды 2,1 МЛН
Asus  VivoBook Винда за 8 часов!
1:00
Sergey Delaisy
Рет қаралды 1,1 МЛН
How To Unlock Your iphone With Your Voice
0:34
요루퐁 yorupong
Рет қаралды 27 МЛН