🧩 Задача на выходные: правильная ли это BST?
Классическая ловушка на собеседованиях. Этот код проверяет BST неправильно:
Для дерева:
Функция вернёт true. Но это не BST!
✏️ Объясни баг и перепиши функцию корректно.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Классическая ловушка на собеседованиях. Этот код проверяет BST неправильно:
bool isValidBST(TreeNode* node) {
if (!node) return true;
if (node->left && node->left->val >= node->val) return false;
if (node->right && node->right->val <= node->val) return false;
return isValidBST(node->left) && isValidBST(node->right);
}
Для дерева:
5
/ \
1 4
/ \
3 6
Функция вернёт true. Но это не BST!
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
Anonymous Quiz
43%
A
43%
Ошибка: конструктор копирования удалён
6%
Ничего
8%
Зависит от флагов оптимизации
1%
Неопределённое поведение
Что выведет код?
Anonymous Quiz
33%
UB
36%
42
1%
0
16%
Ошибка компиляции
13%
42 (копия захватывается)
Что произойдёт при компиляции?
Anonymous Quiz
45%
Ошибка
12%
Предупреждение, но компилируется
34%
Компилируется успешно
3%
UB при запуске
5%
Ошибка только при -Wall
Сколько раз вызовется конструктор A?
Anonymous Quiz
9%
0
15%
1
69%
3
5%
Ошибка компиляции
3%
Зависит от оптимизации
❤1
Что правильно описывает inline переменную (C++17)?
Anonymous Quiz
33%
Переменная вставляется в каждую единицу трансляции отдельно
30%
Переменная имеет единственный экземпляр во всей программе
6%
Переменная автоматически становится constexpr
24%
inline для переменных недопустим, только для функций
7%
Переменная помещается в стек, а не в BSS/data-сегмент
❤1
😁2
Что произойдёт при запуске C++ кода?
Anonymous Quiz
18%
Выведет 42
4%
Выведет 0
33%
Ошибка компиляции
23%
UB
23%
Выведет мусор
🔥 Найди баг: копирование строки сломало указатель
‼️ Задача: найди баг (если он есть), объясни, почему он связан с SSO, и предложи исправление.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
#include <string>
#include <iostream>
struct Token {
std::string value;
const char* ptr;
Token(const std::string& s) : value(s), ptr(value.data()) {}
};
int main() {
Token t1("hi");
Token t2 = t1; // копируем
std::cout << t1.ptr << "\n"; // "hi"
std::cout << t2.ptr << "\n"; // ???
}
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет программа?
Anonymous Quiz
18%
general
22%
same
41%
int second
16%
Ошибка компиляции
2%
UB
❤2