Implementa a codificação e a descodificação run-length (RLE).
A run-length encoding (RLE) é uma forma simples de compressão de dados, em que as sequências (elementos de dados consecutivos) são substituídas por apenas um valor de dados e a respetiva contagem.
Por exemplo, podemos representar os 53 carateres originais com apenas 13.
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
A RLE permite reconstruir perfeitamente os dados originais a partir dos dados comprimidos, o que faz dela uma compressão de dados sem perdas.
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
Por simplicidade, podes assumir que a string não codificada contém apenas as letras de A a Z (maiúsculas ou minúsculas) e espaços em branco. Assim, os dados a codificar nunca contêm números, e os números dentro dos dados a descodificar representam sempre a contagem do caráter seguinte.
Inscreve-te no Exercism para aprenderes e dominares C com 84 exercícios, e mentoria humana real, tudo grátis.