Подготовка к интервью

Вопросы на собеседовании в Яндекс

978 вопросов с собеседований в Яндекс

978 вопросов 1634 компании 353 технологии

Что проверяют на интервью

Как устроена подборка

Подборка объединяет вопросы, отмеченные на этапах интервью в Яндекс. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: mobile, backend, database.

Каталог

Результаты поиска

Найдено: 978
Лайвкодинг

Слияние двух ступенчатых функций с сохранением всех точек измерения

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

Читать ответ
Лайвкодинг

Определение возможности преобразования строки за одно редактирование

Разница длин не должна превышать единицу. На первом несовпадении пропускайте один символ в длинной строке либо в обеих равных по длине; второе несовпадение означает false.

Читать ответ
Теория

Как защитить инициализацию банкомата от произвольных номиналов купюр в `Map<Integer, Integer>`?

Проверяйте каждый номинал по разрешённому набору выбранной валюты, а количество — на неотрицательность. Map<Integer, Integer> сама по себе не ограничивает допустимые значения.

Читать ответ
Теория

Какие недостатки у решения с двумя отдельными Map для RUB и EUR и как его улучшить для добавления новых валют?

Две отдельные Map приводят к дублированию логики и ветвлениям по валюте. Лучше единая структура Currency → номинал → количество с общими операциями выдачи и пополнения.

Читать ответ
Теория

Как метод `withdraw` должен обрабатывать некорректные входные аргументы, в частности нулевую или отрицательную сумму?

withdraw должен отклонять нулевую и отрицательную сумму до расчёта купюр и изменения остатков. Также проверяют поддерживаемую валюту, допустимые единицы суммы и возможность точной выдачи.

Читать ответ
Теория

Что происходит в последнем выражении алгоритма, где обновляется баланс купюр после выдачи?

После успешного расчёта выдачи количество каждой выбранной купюры должно уменьшиться на выданное число. Если финальное выражение использует merge с Integer::sum и положительным count, оно ошибочно увеличивает запас.

Читать ответ
Лайвкодинг

* Банкомат.

Для заданных номиналов можно идти от крупных купюр к мелким, сначала рассчитать выдачу, а затем списать остатки. Операция должна быть атомарной, валюты — храниться раздельно.

Читать ответ
Лайвкодинг

class ATM {

В показанном фрагменте выдача увеличивает остатки через Integer::sum, хотя должна уменьшать их. Расчёт набора купюр и его списание необходимо выполнять атомарно; код также содержит необъявленные переменные.

Читать ответ
Теория

Как улучшить обработку параметра currency, если клиент передаст неизвестное значение, например опечатку вместо RUB?

Проверяйте currency по явному набору поддерживаемых кодов и возвращайте понятную ошибку валидации. Не заменяйте неизвестное значение на RUB молча.

Читать ответ