Implementa la codificación por longitud de racha y la descodificación.
La codificación por longitud de racha (RLE) es una forma sencilla de compresión de datos en la que las rachas (elementos de datos consecutivos) se sustituyen por un único valor de datos y su recuento.
Por ejemplo, podemos representar los 53 caracteres originales con solo 13.
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
La RLE permite reconstruir perfectamente los datos originales a partir de los datos comprimidos, lo que la convierte en una compresión de datos sin pérdida.
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
Por simplificar, puedes suponer que el string sin codificar solo contendrá las letras de la A a la Z (mayúsculas o minúsculas) y espacios en blanco. De esta forma, los datos que se van a codificar nunca contendrán números, y los números dentro de los datos que se van a descodificar siempre representan el recuento del carácter siguiente.
El búfer del string de entrada utiliza los bytes 64 a 319 de la memoria lineal.
El string de entrada se puede modificar in situ si lo deseas.
Regístrate en Exercism para aprender y dominar WebAssembly con 87 ejercicios y mentoría humana real, todo gratis.