From f0214efafa2f98eb1ae5c83fb16ffacde2492231 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Mon, 17 Jan 2022 01:59:53 +0200 Subject: Create kk --- Sem. 15/kk | 1 + 1 file changed, 1 insertion(+) create mode 100644 Sem. 15/kk diff --git a/Sem. 15/kk b/Sem. 15/kk new file mode 100644 index 0000000..4c559f7 --- /dev/null +++ b/Sem. 15/kk @@ -0,0 +1 @@ +j -- cgit v1.3.1-23-gd82d From 16620176eaf6ebf6e7e24a4e27f3e68f7431f2fc Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Mon, 17 Jan 2022 02:00:07 +0200 Subject: Add files via upload --- Sem. 15/task1.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ Sem. 15/task2.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ Sem. 15/task3.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 Sem. 15/task1.cpp create mode 100644 Sem. 15/task2.cpp create mode 100644 Sem. 15/task3.cpp diff --git a/Sem. 15/task1.cpp b/Sem. 15/task1.cpp new file mode 100644 index 0000000..502b7a5 --- /dev/null +++ b/Sem. 15/task1.cpp @@ -0,0 +1,46 @@ +#include + +int min(int a, int b) +{ + return a < b ? a : b; +} +int min(int a, int b, int c) +{ + return min(min(a, b), c); +} +int getMinOperations(size_t N, int* cache) +{ + if (N == 1) + return 0; + + if (cache[N] != 0) + return cache[N]; + + int dvBy3 = INT_MAX; + int dvBy2 = INT_MAX; + int s1 = INT_MAX; + + if (N % 3 == 0) + dvBy3 = getMinOperations(N / 3, cache); + if (N % 2 == 0) + dvBy2 = getMinOperations(N / 2, cache); + s1 = getMinOperations(N - 1, cache); + + int result = 1 + min(dvBy2, dvBy3, s1); + cache[N] = result; + return result; +} + +int getMinOperationsWrapper(size_t N) +{ + int* cache = new int[N + 1]; + for (size_t i = 0; i < N + 1; i++) + cache[i] = 0; + + return getMinOperations(N, cache); +} + +int main() +{ + std::cout << getMinOperationsWrapper(19);// 1 -> 3 -> 6 -> 18 -> 19 +} \ No newline at end of file diff --git a/Sem. 15/task2.cpp b/Sem. 15/task2.cpp new file mode 100644 index 0000000..55229c2 --- /dev/null +++ b/Sem. 15/task2.cpp @@ -0,0 +1,50 @@ +#include + + +bool isValidSymbol(char ch) +{ + return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9'); +} +//true word1 < word2 +bool isLexLess(const char* word1, const char* word2) +{ + while (isValidSymbol(*word1) && isValidSymbol(*word2)) + { + if (*word1 < *word2) + return true; + else if (*word1 > *word2) + return false; + word1++; + word2++; + } + return !isValidSymbol(*word1); +} + + +const char* minWord(const char* str) +{ + size_t len = strlen(str); + const char* currentMin = nullptr; + const char* iter = str; + while (*iter != '\0') + { + if (isValidSymbol(*iter) && ((iter == str) || !isValidSymbol(*(iter - 1)))) + { + if (currentMin == nullptr) + { + currentMin = iter; + } + else + { + if (isLexLess(iter, currentMin)) + currentMin = iter; + } + } + iter++; + } + return currentMin; +} +int main() +{ + std::cout << minWord("me? why always me");// 1 -> 3 -> 6 -> 18 -> 19 +} \ No newline at end of file diff --git a/Sem. 15/task3.cpp b/Sem. 15/task3.cpp new file mode 100644 index 0000000..83bc8f3 --- /dev/null +++ b/Sem. 15/task3.cpp @@ -0,0 +1,48 @@ +#include + + +bool isLowerChar(char ch) +{ + return ch >= 'a' && ch <= 'z'; +} +char* sortLowerChars(const char* str) +{ + const int ALPHABET_SIZE = 26; + int hist[ALPHABET_SIZE] = { 0 }; + int newSize = 0; + + while (*str != '\0') + { + if (isLowerChar(*str)) + { + newSize++; + hist[*str - 'a']++; + } + + str++; + } + + char* result = new char[newSize + 1]; + result[newSize] = '\0'; + int resultIndex = 0; + + for (int i = 0; i < ALPHABET_SIZE; i++) + { + while (hist[i] > 0) + { + result[resultIndex++] = 'a' + i; + hist[i]--; + } + } + return result; + +} + +int main() +{ + char* result = sortLowerChars("bbzzAaaTYb"); + + std::cout << result << std::endl; + + delete[] result; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d From 2d3edb414454ad28554cf73ed8fabe86f17ff337 Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev <68247567+stoychoX@users.noreply.github.com> Date: Mon, 17 Jan 2022 16:12:24 +0200 Subject: Add files via upload --- ...\201\320\276\320\272 \321\200\320\265\320\264..pdf" | Bin 0 -> 111160 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "pract_KN/pract. 13/\320\240\320\265\320\272\321\203\321\200\321\201\320\270\321\217 (\321\207\320\260\321\201\321\202 2). \320\244\321\203\320\275\320\272\321\206\320\270\320\270 \320\276\321\202 \320\277\320\276 - \320\262\320\270\321\201\320\276\320\272 \321\200\320\265\320\264..pdf" diff --git "a/pract_KN/pract. 13/\320\240\320\265\320\272\321\203\321\200\321\201\320\270\321\217 (\321\207\320\260\321\201\321\202 2). \320\244\321\203\320\275\320\272\321\206\320\270\320\270 \320\276\321\202 \320\277\320\276 - \320\262\320\270\321\201\320\276\320\272 \321\200\320\265\320\264..pdf" "b/pract_KN/pract. 13/\320\240\320\265\320\272\321\203\321\200\321\201\320\270\321\217 (\321\207\320\260\321\201\321\202 2). \320\244\321\203\320\275\320\272\321\206\320\270\320\270 \320\276\321\202 \320\277\320\276 - \320\262\320\270\321\201\320\276\320\272 \321\200\320\265\320\264..pdf" new file mode 100644 index 0000000..0c1092c Binary files /dev/null and "b/pract_KN/pract. 13/\320\240\320\265\320\272\321\203\321\200\321\201\320\270\321\217 (\321\207\320\260\321\201\321\202 2). \320\244\321\203\320\275\320\272\321\206\320\270\320\270 \320\276\321\202 \320\277\320\276 - \320\262\320\270\321\201\320\276\320\272 \321\200\320\265\320\264..pdf" differ -- cgit v1.3.1-23-gd82d