Создание собственной функции для вычисления длины строки
Последовательно считайте байты до первого нулевого символа. Как и strlen, функция требует указатель на доступную строку с завершающим '\0' и не считает Unicode-символы.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Последовательно считайте байты до первого нулевого символа. Как и strlen, функция требует указатель на доступную строку с завершающим '\0' и не считает Unicode-символы.
Читать ответДва потока берут мьютексы в противоположном порядке, поэтому возможен deadlock. Сравнение объекта с самим собой также пытается повторно захватить один mutex. Оба случая требуют исправления.
Читать ответНужно полное определение Entity в месте создания и вызова метода, RAII-владение объектом и возврат результата callMethod. По одному forward declaration нельзя ни выполнить new Entity, ни вызвать его метод.
Читать ответСкопируйте данные следующего узла в доступный и удалите следующий узел. Для 4 → 1 → 3 получится 4 → 3, но физически удалится прежний узел со значением 3.
Читать ответСтрока delete ptr не выполнится, потому что new Data выбросит исключение. При обычном new память под сам недостроенный объект автоматически освобождается, поэтому именно этот блок не утечёт.
Читать ответОба delete через Base* имеют неопределённое поведение: деструктор Base не виртуальный. Наличие другой виртуальной функции не делает деструктор виртуальным автоматически.
Читать ответfoo удерживает cerr_mutex и вызывает bar, которая пытается захватить тот же нерекурсивный mutex. Такое повторное захватывание недопустимо и обычно приводит к зависанию.
Читать ответОбщий шаблон возвращает false, а частичная специализация для двух одинаковых типов — true. Наследование от integral_constant также даёт поведение стандартного type trait.
Читать ответРассматривайте прямоугольную матрицу как один отсортированный массив. Бинарный поиск по плоскому индексу i обращается к mat[i / n][i % n] и работает за O(log(mn)).
Читать ответУзел бинарного дерева поиска хранит значение и ссылки на левое и правое поддерево. Сам узел не обеспечивает порядок: его должны сохранять операции вставки и удаления.
Читать ответДля set требуется строгий слабый порядок, для unordered_set — равенство и согласованный с ним хеш. Для Data с единственным int все три операции естественно определяются через value.
Читать ответОба потока выполнят по десять итераций, но фрагменты вывода могут перемешиваться. Кроме того, uint8_t часто является unsigned char, поэтому i выводится как символ, а не как число.
Читать ответ