[ ] Practice on "paper"
- Порахуйте кількість одиниць у довільному числі.
- Є структура за типом «однозв’язний список». Напишіть функцію, яка розгортає список. Тобто перший елемент стає останнім, а останній — першим.
- Напишіть реалізацію функції int atoi(const char *str); перетворення рядка в число.
- Для структури типу однозв’язний список напишіть функцію вставки елемента.
- Реалізуйте клас vector.
- Реалізуйте бінарний пошук у масиві.
- Реалізуйте будь-яке сортування.
- Реалізуйте макрос для порівняння двох рядків.
- Реалізуйте реверс рядків.
- Реалізуйте переведення числа з рядка в int.
- Реалізуйте підрахунок слів у реченні.
- Реалізуйте підрахунок чисел Фібоначчі.
- Знайдіть такі елементи двох масивів, які трапляються тільки в кожному з них. Бажано використовувати STL.
- Видаліть з unordered_map елементи, які діляться на 2, і виведіть ключі цих елементів.
- Напишіть клас для логування, який міг би логувати до консолі або файлу.
- Напишіть функцію для визначення, чи є певний рік високосним.
- Напишіть функцію для визначення, чи є певне слово паліндромом.
- Напишіть реалізацію патерну Singleton.
- Напишіть реалізацію std::vector з операціями: push_back, push_front, pop_back, pop_front, size, clear.
- Напишіть рекурсивний пошук значення в дереві бінарного пошуку.
- Напишіть функцію, яка перевіряє, чи є дерево збалансованим.
- Напишіть функцію для пошуку унікального елемента в масиві.
- Напишіть максимально коректну реалізацію класу string з конструктором копіювання та оператором присвоєння.
- Напишіть реалізацію черги.
- Реалізуйте функцію, яка за один прохід знайде унікальний елемент в контейнері.
- Напишіть thread-safe пул потоків.
- Напишіть гру життя в ООП стилі.
- Напишіть клас, який дістає з бази список товарів за фільтром і показує на консолі. Напишіть тести для нього.
- Будь-яке завдання на написання коду, щоб перевірити вміння проєктувати інтерфейси та дотримуватися принципів SOLID, DRY, KISS.
- Напишіть свою реалізацію std::atomic.
- Напишіть програму для аналізу графів: знаходження циклів, deadlock-станів, циклів, недосяжних станів.
- Напишіть програму, яка б перевіряла, що у системі запущено лише один її екземпляр. Рішення має бути cross-platform.
- Проаналізуйте C++ код з погляду якості: виявити потенційні memory leak, нераціональне використання STL-контейнерів, алгоритмів, неоптимальні конструкції тощо.
- Напишіть код для розв’язання судоку.
- Напишіть код, який знайде зациклення в однозв’язному списку.
- Напишіть базову реалізацію std::shared_ptr.
- Реалізуйте алгоритм сортування.
- Реалізуйте алгоритм хешування.
- Реалізуйте shared_ptr з розширенням для weak_ptr.
- Реалізуйте найпростіший producer-consumer, використовуючи умовні змінні.
- Опишіть якомога детальніше, що відбувається в системі, коли застосунок робить мережевий запит.
- Детально описати дизайн програмного компонента, наприклад, системи голосування — врахувати при цьому високе навантаження і зробити його розширюваним і відмовостійким.