Implemente a codificação e a decodificação run-length.
A codificação run-length (RLE) é uma forma simples de compressão de dados, em que as sequências (elementos de dados consecutivos) são substituídas por um único valor de dado e uma contagem.
Por exemplo, podemos representar os 53 caracteres originais com apenas 13.
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
A RLE permite reconstruir perfeitamente os dados originais a partir dos dados comprimidos, o que a torna uma compressão de dados sem perdas.
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
Para simplificar, você pode assumir que a string não codificada conterá apenas as letras de A a Z (maiúsculas ou minúsculas) e espaços em branco. Assim, os dados a serem codificados nunca conterão números, e os números dentro dos dados a serem decodificados sempre representam a contagem do caractere seguinte.
Crie sua conta no Exercism para aprender e dominar Crystal com 26 conceitos142 exercícios e mentoria humana de verdade, tudo de graça.