diff --git a/challenge_13/c/karanchawla/challenge_13.c b/challenge_13/c/karanchawla/challenge_13.c index e401485e7..b130b0027 100644 --- a/challenge_13/c/karanchawla/challenge_13.c +++ b/challenge_13/c/karanchawla/challenge_13.c @@ -4,81 +4,17 @@ #include #include -// Dynamic Array Definition -////////////////////////////////////////////////////////////////////////////////// -typedef struct { - int *array; - size_t used; - size_t size; -} Array; - -void initArray(Array *a, size_t initialSize) -{ - a->array = (int *)malloc(initialSize * sizeof(int)); - a->used = 0; - a->size = initialSize; -} - -void insertArray(Array *a, int element) +int reverse(int x) { -// a->used is the number of used entries, because a->array[a->used++] updates a->used only *after* the array has been accessed. -// Therefore a->used can go up to a->size - if (a->used == a->size) + int ans = 0; + while(x != 0) { - a->size *= 2; - a->array = (int *)realloc(a->array, a->size * sizeof(int)); + ans = ans * 10; + ans = ans + x%10; + x = x/10; } - a->array[a->used++] = element; -} - -void freeArray(Array *a) -{ - free(a->array); - a->array = NULL; - a->used = a->size = 0; -} -/* -Array a; -int i; -initArray(&a, 5); // initially 5 elements -for (i = 0; i < 100; i++) -insertArray(&a, i); // automatically resizes as necessary -printf("%d\n", a.array[9]); // print 10th element -printf("%d\n", a.used); // print number of elements -freeArray(&a); -*/ -/////////////////////////////////////////////////////////////////////////////////// - -void isPalindrome(int num) -{ - Array a; - initArray(&a,1); - while(num) - { - insertArray(&a, num%10); - num /= 10; - } - - int size = a.used; - - int flag = 1; - for(int i=0;i