Implémente l'encodage et le décodage par plages.
L'encodage par plages (RLE) est une forme simple de compression de données, dans laquelle des séries (des éléments de données consécutifs) sont remplacées par une seule valeur de donnée et son nombre d'occurrences.
Par exemple, on peut représenter les 53 caractères d'origine avec seulement 13.
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
L'encodage par plages permet de reconstruire parfaitement les données d'origine à partir des données compressées, ce qui en fait une compression de données sans perte.
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
Pour simplifier, tu peux supposer que la string non encodée ne contiendra que les lettres de A à Z (en minuscules ou en majuscules) et des caractères d'espacement. Ainsi, les données à encoder ne contiendront jamais de chiffres, et les chiffres présents dans les données à décoder représentent toujours le nombre d'occurrences du caractère qui suit.
Le tampon de la string d'entrée utilise les octets 64 à 319 de la mémoire linéaire.
La string d'entrée peut être modifiée en place si on le souhaite.
Inscris-toi sur Exercism pour apprendre et maîtriser WebAssembly avec 87 exercices, et un vrai mentorat humain, le tout gratuitement.