From 0f4e24b019555420217846e0fabd52ec72d47754 Mon Sep 17 00:00:00 2001 From: thatithuripriya Date: Mon, 27 Oct 2025 07:21:24 +0530 Subject: [PATCH 1/6] Implement isAnagram function to check anagrams --- anagram.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 anagram.c diff --git a/anagram.c b/anagram.c new file mode 100644 index 000000000..b5fa476ed --- /dev/null +++ b/anagram.c @@ -0,0 +1,28 @@ +#include + +bool isAnagram(char* s, char* t) { + int sLen = strlen(s); + int tLen = strlen(t); + + if (sLen != tLen) { + return false; + } + + int charCount[26] = {0}; + + for (int i = 0; i < sLen; i++) { + charCount[s[i] - 'a']++; + } + + for (int i = 0; i < tLen; i++) { + charCount[t[i] - 'a']--; + } + + for (int i = 0; i < 26; i++) { + if (charCount[i] != 0) { + return false; + } + } + + return true; +} From d15d92f4be359ce77034754316dfe7b7a1ef43d8 Mon Sep 17 00:00:00 2001 From: thatithuripriya Date: Mon, 27 Oct 2025 07:24:28 +0530 Subject: [PATCH 2/6] Add stringHash function for hashing strings Implement string hashing by dividing input into k segments. --- Hash dividing string | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Hash dividing string diff --git a/Hash dividing string b/Hash dividing string new file mode 100644 index 000000000..e7714d47d --- /dev/null +++ b/Hash dividing string @@ -0,0 +1,22 @@ + +char* stringHash(char* s, int k) { + int n = strlen(s); + int resultSize = n / k; + char* result = (char*)malloc((resultSize + 1) * sizeof(char)); + if (result == NULL) { + return NULL; + } + + result[resultSize] = '\0'; + + for (int i = 0; i < resultSize; i++) { + int sum = 0; + for (int j = 0; j < k; j++) { + sum += s[i * k + j] - 'a'; + } + int hashedChar = sum % 26; + result[i] = 'a' + hashedChar; + } + + return result; +} From 1c1ce49548b849cb3a4419a33a0a4a053e3d41bd Mon Sep 17 00:00:00 2001 From: thatithuripriya Date: Mon, 27 Oct 2025 07:26:32 +0530 Subject: [PATCH 3/6] Implement digitCount function to validate number --- check if number | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 check if number diff --git a/check if number b/check if number new file mode 100644 index 000000000..97895626f --- /dev/null +++ b/check if number @@ -0,0 +1,17 @@ + +bool digitCount(char* num) { + int n = strlen(num); + int counts[10] = {0}; + + for (int i = 0; i < n; i++) { + counts[num[i] - '0']++; + } + + for (int i = 0; i < n; i++) { + if (counts[i] != (num[i] - '0')) { + return false; + } + } + + return true; +} From 67346abc3e8380ea38c702ca895af35338065de3 Mon Sep 17 00:00:00 2001 From: thatithuripriya Date: Mon, 27 Oct 2025 07:29:30 +0530 Subject: [PATCH 4/6] Implement function to check for duplicate integers --- contains duplicate | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 contains duplicate diff --git a/contains duplicate b/contains duplicate new file mode 100644 index 000000000..eaf7cacee --- /dev/null +++ b/contains duplicate @@ -0,0 +1,19 @@ + +int cmp(const void* a, const void* b) { + return (*(int*)a - *(int*)b); +} + +bool containsDuplicate(int* nums, int numsSize) { + if (numsSize <= 1) { + return false; + } + + qsort(nums, numsSize, sizeof(int), cmp); + + for (int i = 1; i < numsSize; i++) { + if (nums[i] == nums[i - 1]) { + return true; + } + } + return false; +} From 5bd633723f324b342bc1ed53ac579b01a090dbc2 Mon Sep 17 00:00:00 2001 From: thatithuripriya Date: Mon, 27 Oct 2025 07:42:31 +0530 Subject: [PATCH 5/6] Implement integer division without using '/' operator --- divide two integers | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 divide two integers diff --git a/divide two integers b/divide two integers new file mode 100644 index 000000000..f2c3ea8fb --- /dev/null +++ b/divide two integers @@ -0,0 +1,22 @@ +#include +#include + +int divide(int dividend, int divisor) { + if (dividend == INT_MIN && divisor == -1) return INT_MAX; + long long a = llabs((long long)dividend); + long long b = llabs((long long)divisor); + long long res = 0; + while (a >= b) { + long long temp = b, multiple = 1; + while (a >= (temp << 1)) { + temp <<= 1; + multiple <<= 1; + } + a -= temp; + res += multiple; + } + if ((dividend > 0) ^ (divisor > 0)) res = -res; + if (res > INT_MAX) return INT_MAX; + if (res < INT_MIN) return INT_MIN; + return (int)res; +} From 44d075bee3768c0384a2cc5ca854a560b33b37cc Mon Sep 17 00:00:00 2001 From: thatithuripriya Date: Mon, 3 Nov 2025 07:37:20 +0530 Subject: [PATCH 6/6] Implement function to check for duplicate numbers --- duplicate | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 duplicate diff --git a/duplicate b/duplicate new file mode 100644 index 000000000..eaf7cacee --- /dev/null +++ b/duplicate @@ -0,0 +1,19 @@ + +int cmp(const void* a, const void* b) { + return (*(int*)a - *(int*)b); +} + +bool containsDuplicate(int* nums, int numsSize) { + if (numsSize <= 1) { + return false; + } + + qsort(nums, numsSize, sizeof(int), cmp); + + for (int i = 1; i < numsSize; i++) { + if (nums[i] == nums[i - 1]) { + return true; + } + } + return false; +}