Библиотека задач по C++ | тесты, код, задания
5.08K subscribers
716 photos
3 videos
185 links
Задачи и тесты по C++ для тренировки и обучения.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
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
⚙️ Задача How Many Numbers Are Smaller Than the Current Number

Для каждого элемента массива посчитать количество элементов меньше и вывести результат в виде массива

Пример
Input: nums = [8,1,2,2,3]
Output: [4,0,1,1,3]

Ограничения
- Значение элемента лежит между значениями 0 и 100
- Длина самого массива не меньше 2-х и не больше 500-а

👉How Many Numbers Are Smaller Than the Current Number (leetcode)

#tasks #middle

Решение

class Solution {
public:
vector smallerNumbersThanCurrent(vector& nums) {
vector ans;
vector nums_count(101);

for (const int num : nums){
++nums_count[num];
}

for (int i = 1; i <= 100; ++i) {
nums_count[i] += nums_count[i — 1];
}

for (const int num : nums) {
ans.push_back(num == 0 ? 0 : nums_count[num — 1]);
}

return ans;
}
};
March 9, 2024
March 10, 2024