mirror of
https://github.com/theoludwig/programming-challenges.git
synced 2025-05-18 12:02:53 +02:00
feat(solutions): add look-and-say-sequence-conway/c/function
This commit is contained in:
@ -0,0 +1,28 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "character.h"
|
||||
#include "input.h"
|
||||
|
||||
int main() {
|
||||
char* string = input();
|
||||
size_t string_length = strlen(string);
|
||||
char* result = malloc(sizeof(char*) * (string_length + 1));
|
||||
for (size_t index = 0; index < string_length; index++) {
|
||||
size_t number_of_appearances = 0;
|
||||
char value_to_search = string[index];
|
||||
size_t iteration = index;
|
||||
while (iteration < string_length && string[iteration] == value_to_search) {
|
||||
number_of_appearances++;
|
||||
iteration++;
|
||||
}
|
||||
char* number_of_appearances_string = malloc(sizeof(char*) * (string_length + 1));
|
||||
snprintf(number_of_appearances_string, sizeof(result), "%zu", number_of_appearances);
|
||||
character_append_many(result, number_of_appearances_string);
|
||||
character_append(result, value_to_search);
|
||||
index += number_of_appearances - 1;
|
||||
}
|
||||
printf("%s\n", result);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Reference in New Issue
Block a user