Библиотека задач по C++ | тесты, код, задания
5.12K subscribers
678 photos
1 video
177 links
Задачи и тесты по C++ для тренировки и обучения.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/7a480301

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
⚙️ camelCase ⇄ snake_case

Создайте две функции toCamelCase() и toSnakeCase(), каждая из которых принимает одну строку и преобразует ее либо в CamelCase, либо в Snake_case

Подход к решению
- Можно решать с помощью регулярных выражений или посимвольного перебора

👉 camelCase ⇄ snake_case (edabit)

#junior #tasks

💡Решение

std::string toCamelCase(std::string str) {
bool capitalizeNext = false;
std::string camelCaseStr;

for (char c : str) {
if (c == '_') {
capitalizeNext = true;
}
else {
if (capitalizeNext) {
camelCaseStr += toupper(c);
capitalizeNext = false;
}
else {
camelCaseStr += c;
}
}
}

return camelCaseStr;
}

std::string toSnakeCase(std::string str) {
std::ostringstream snakeCaseStr;

for (char c : str) {
if (isupper(c)) {
snakeCaseStr << '_' << static_cast(tolower(c));
}
else {
snakeCaseStr << c;
}
}

return snakeCaseStr.str();
}
February 21, 2024
⚙️ Задач Excel Sheet Column Title (leetcode)

Есть номер столбца columnsNumber, верните соответствующий заголовок столбца, как он отображается в таблице Excel

Пример

Ввод: columnNumber = 1
Вывод: «A»

Ввод: columnNumber = 28
Вывод: «AB»

👉 Excel Sheet Column Title (leetcode)

#junior #tasks

💡Решение

class Solution {
public:
std::string convertToTitle(int n) {
if (n == 0) return «»;

std::string result;
const std::string map = «ABCDEFGHIJKLMNOPQRSTUVWXYZ»;

while (n != 0) {
result.push_back(map[(n — 1) % 26]);
n = (n — 1) / 26;
}

std::reverse(result.begin(), result.end());

return result;
}
};
February 22, 2024
⚙️ Найдите нечетное целое число

Напишите функцию, которая принимает массив и находит целое число, которое появляется нечетное количество раз

Подход к решению
- Можно решить с помощью ассоциативного контейнера, просто посчитав количество вхождений
- Также из за того, что нужно найти только одно число то нет необходимости хранить их все, и из-за того, что есть побитовая операция XOR, которая гарантирует, что если дважды применить её к одному и тому же числу, то получится исходное число, можно решить задачу за один проход массива

👉 Find the Odd Integer (edabit)

#junior #tasks

Решение 1
int findOdd(std::vector arr) {
std::map nums;

for (int i = 0; i < arr.size(); ++i) {
nums[arr[i]] += 1;
}

int result = 0;

for (auto num : nums) {
if (num.second % 2 != 0) {
result = num.first;
break;
}
}

return result;
}


Решение 2
int findOdd(std::vector arr) {
int number = 0;
for (auto a : arr) {
number = number ^ a;
}
return number;
}
February 23, 2024
⚙️ Задача Running Sum of 1d Array

Дан массив чисел. Мы определяем текущую сумму массива как RunningSum[i] = sum(nums[0]…nums[i]). В каждой новой ячейке нового массива будет сумма от 0-го элемента и до i-го

👉 Running Sum of 1d Array

#tasks #junior

💡 Решение
class Solution {
public:
vector runningSum(vector& nums) {
vector ans(nums.size());
ans[0] = nums[0];
for (int i = 1; i < nums.size(); i++)
ans[i] = ans[i-1] + nums[i];
return ans;
}
};
February 24, 2024
🪬Не забывайте про точку запятой!!!

#memes
February 26, 2024
February 26, 2024
🧨 Что выведется при выполнении программы??
Anonymous Quiz
40%
true
48%
false
6%
Приложение не соберётся
6%
Упадёт с ошибкой
February 27, 2024
🔮 Задача Sum of v0w3ls

Создайте функцию, которая принимает строку и возвращает сумму гласных, причем для каждой гласной нужно прибавлять своё число (A->4, E->3, I->1, O->0)

👉Sum of v0w3ls (edabit)

#tasks #junior

Решение
int sumOfVowels(std::string str) {
int count = 0;

for (char ch : str) {
ch = std::tolower(ch);
switch (ch) {
case 'a': count += 4; break;
case 'e': count += 3; break;
case 'i': count += 1; break;
case 'o': break;
}
}

return count;
}
February 28, 2024
⚙️ Search in a Binary Search Tree

В задаче требуется реализовать поиск по бинарному дереву

Подход к решению
- Реализуется с помощью рекурсивного алгоритма
- Сначала обходим левое поддерево, а затем правое

#tasks #middle

Решение
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
if (!root)
return nullptr;

if (root->val == val)
return root;

if (val < root->val)
return searchBST(root->left, val);
else
return searchBST(root->right, val);
}
};
February 29, 2024
🧨 Что выведется при выполнении программы??
Anonymous Quiz
22%
-127
4%
128
15%
127
56%
Ошибка компиляции
3%
125
March 1, 2024
🧿 Задача Простая пара

Дан массив целых чисел arr и целое число n. Найдите из данного массива пару чисел [x, y] такую, что x * y = n. Если пара не найдена, вернуть [0, 0]

👉A Simple Pair (edabit)

#middle #tasks

Решение
std::pair simplePair(std::vector arr, int n) {

for (int i = 0; i < arr.size()-1; ++i) {
for (int j = i+1; j < arr.size(); ++j) {
if (arr[i] * arr[j] == n) {
return std::make_pair(arr[i], arr[j]);
}
}
}

return std::make_pair( 0, 0 );
}
March 2, 2024
Где проблема в данном коде?

Аргумент для sizeof доджен быть *object, потому что в коде подставляется размер указателя а не структуры
March 5, 2024
⚙️ Задача Even or Odd: Which is Greater?

Создайте функцию, определяющую, больше ли сумма всех чётных цифр, чем сумма всех нечетных цифр в строке цифр

Если сумма нечетных цифр больше суммы четных, верните «Odd is greater than Even»
Если сумма четных цифр больше суммы нечетных, верните «Even is greater than Odd»
Если сумма четных и нечетных цифр равна, верните «Even and Odd are the same»

👉Even or Odd: Which is Greater?

#junior

❗️Решение

std::string evenOrOdd(std::string str) {
int sumOdd = 0;
int sumEven= 0;

for (auto ch : str) {
int num = ch - '0';

if (num % 2 == 0) {
sumEven += num;
}
else {
sumOdd += num;
}
}

if (sumOdd == sumEven) {
return "Even and Odd are the same";
}
else if (sumOdd > sumEven) {
return "Odd is greater than Even";
}
else {
return "Even is greater than Odd";
}
}wbah
March 6, 2024
🔮 С помощью какого методов можно приостановить текущий поток?
Anonymous Quiz
41%
std::thread::sleep
11%
std::thread::terminate
31%
std::this_thread::sleep_for
17%
std::thread::stop
March 7, 2024