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

Лайвкодинг на собеседовании

3221 вопрос в категории «Лайвкодинг»

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

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

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

В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.

Каталог

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

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

Как создавать и ожидать задачи в asyncio?

Coroutine можно ожидать напрямую через await, а для конкурентного выполнения — создать Task через asyncio.create_task(). Несколько связанных задач удобно запускать в TaskGroup или ожидать через gather().

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

Написать декоратор rate_limit(max_calls, period), который ограничивает число вызовов функции скользящим окном по времени: не более max_calls вызовов за любые последние period секунд. При превышении лимита вызов не должен выполняться. Учесть, что функцию могут вызывать из нескольких потоков.

Храним времена допущенных вызовов в deque и под Lock удаляем записи вне окна, проверяем лимит и резервируем новый вызов. Для измерения интервалов нужен monotonic(), а функцию выполняем уже вне блокировки.

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

a = "abc", not-empty, unique

Если задача — найти минимальную подстроку s, содержащую все символы a, подходит скользящее окно. Для указанного примера результат aceb, а при отсутствии подходящего окна возвращается пустая строка.

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

Алгоритмы - LeetCode 1 - Two Sum

Проходим массив и храним уже встреченные значения с индексами. Для каждого числа ищем target − число в словаре: так получаем разные индексы за ожидаемое O(n) времени и O(n) памяти.

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

Вы хорошо объяснили природу гонки и важность атомарности. Расскажите, как бы вы реализовали атомарное изменение баланса в Python без использования базы данных?

В одном процессе можно защитить проверку и изменение баланса общим Lock. Важно блокировать весь read-check-write, а не только присваивание; все обращения к состоянию должны соблюдать тот же протокол.

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

from collections import Counter

Код ищет минимальную подстроку s со всеми различными символами a. Повторы в a не учитываются. Нужно обработать пустое a и сохранять индексы, а не многократно копировать найденные подстроки.

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

Как с помощью дескрипторов реализовать кастомный ленивый аналог декоратора @property?

Ленивое свойство можно реализовать non-data descriptor: при первом чтении вычислить значение и записать его в instance.__dict__. Дальнейшее чтение найдёт сохранённый атрибут без повторного вычисления.

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

"""Напишите код который выполняет извлечение ссылок из сырого текста и сортирует их по определённым правилам.

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

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

Django update: число строк вместо User и списание баланса

QuerySet.update() возвращает число изменённых строк, а не User. Исходный код уже списывает деньги до проверки, затем пытается обращаться к balance у числа; проверку и списание нужно объединить атомарно.

Читать ответ