Skip to content

Latest commit

 

History

History
54 lines (47 loc) · 5.07 KB

FAQ.md

File metadata and controls

54 lines (47 loc) · 5.07 KB

FAQ

[ ] Practice on "paper"

Junior

  • Порахуйте кількість одиниць у довільному числі.
  • Є структура за типом «однозв’язний список». Напишіть функцію, яка розгортає список. Тобто перший елемент стає останнім, а останній — першим.
  • Напишіть реалізацію функції int atoi(const char *str); перетворення рядка в число.
  • Для структури типу однозв’язний список напишіть функцію вставки елемента.
  • Реалізуйте клас vector.
  • Реалізуйте бінарний пошук у масиві.
  • Реалізуйте будь-яке сортування.
  • Реалізуйте макрос для порівняння двох рядків.
  • Реалізуйте реверс рядків.
  • Реалізуйте переведення числа з рядка в int.
  • Реалізуйте підрахунок слів у реченні.
  • Реалізуйте підрахунок чисел Фібоначчі.
  • Знайдіть такі елементи двох масивів, які трапляються тільки в кожному з них. Бажано використовувати STL.
  • Видаліть з unordered_map елементи, які діляться на 2, і виведіть ключі цих елементів.
  • Напишіть клас для логування, який міг би логувати до консолі або файлу.
  • Напишіть функцію для визначення, чи є певний рік високосним.
  • Напишіть функцію для визначення, чи є певне слово паліндромом.
  • Напишіть реалізацію патерну Singleton.
  • Напишіть реалізацію std::vector з операціями: push_back, push_front, pop_back, pop_front, size, clear.
  • Напишіть рекурсивний пошук значення в дереві бінарного пошуку.
  • Напишіть функцію, яка перевіряє, чи є дерево збалансованим.
  • Напишіть функцію для пошуку унікального елемента в масиві.

Middle

  • Напишіть максимально коректну реалізацію класу string з конструктором копіювання та оператором присвоєння.
  • Напишіть реалізацію черги.
  • Реалізуйте функцію, яка за один прохід знайде унікальний елемент в контейнері.
  • Напишіть thread-safe пул потоків.
  • Напишіть гру життя в ООП стилі.
  • Напишіть клас, який дістає з бази список товарів за фільтром і показує на консолі. Напишіть тести для нього.
  • Будь-яке завдання на написання коду, щоб перевірити вміння проєктувати інтерфейси та дотримуватися принципів SOLID, DRY, KISS.
  • Напишіть свою реалізацію std::atomic.
  • Напишіть програму для аналізу графів: знаходження циклів, deadlock-станів, циклів, недосяжних станів.
  • Напишіть програму, яка б перевіряла, що у системі запущено лише один її екземпляр. Рішення має бути cross-platform.
  • Проаналізуйте C++ код з погляду якості: виявити потенційні memory leak, нераціональне використання STL-контейнерів, алгоритмів, неоптимальні конструкції тощо.
  • Напишіть код для розв’язання судоку.
  • Напишіть код, який знайде зациклення в однозв’язному списку.

Senior

  • Напишіть базову реалізацію std::shared_ptr.
  • Реалізуйте алгоритм сортування.
  • Реалізуйте алгоритм хешування.
  • Реалізуйте shared_ptr з розширенням для weak_ptr.
  • Реалізуйте найпростіший producer-consumer, використовуючи умовні змінні.
  • Опишіть якомога детальніше, що відбувається в системі, коли застосунок робить мережевий запит.
  • Детально описати дизайн програмного компонента, наприклад, системи голосування — врахувати при цьому високе навантаження і зробити його розширюваним і відмовостійким.