Run-length encoding, kortweg RLE, is het vervangen van herhaalde patronen in een tekst door het aantal herhalingen plus het patroon dat herhaald wordt. Op deze manier kan een tekst die heel veel herhalingen bevat onder sterk ingekorte vorm opgeslagen worden. Voor deze opgave houden we het bij een eenvoudige vorm van run-length encoding die de volgende regels toepast:
Elke reeks van 2 tot 9 opeenvolgende identieke karakters wordt gecodeerd door twee karakters. Het eerste karakter is een cijfer dat de lengte van de reeks aangeeft, en het tweede karakter is het herhaalde karakter zelf. Een reeks van meer dan 9 opeenvolgende identieke karakters wordt behandeld door eerst de eerste 9 karakters te coderen, en daarna de rest te coderen.
Een reeks van karakters die geen opeenvolgende identieke karakters bevat wordt gecodeerd als het cijfer 1, gevolgd door de reeks van karakters, en opnieuw afgesloten door het cijfer 1. Als het cijfer 1 zelf voorkomt in de reeks, dan wordt dit cijfer verdubbeld.
Schrijf een functie rle waaraan een string $$s$$ als argument moet doorgegeven worden. De functie moet de gecodeerde vorm van de string $$s$$ als resultaat teruggeven, die bekomen wordt door toepassing van het eenvoudige run-length encoding schema dat in de inleiding beschreven werd.
>>> rle('AAAAAABCCCC')
'6A1B14C'
>>> rle('12344')
'11123124'