C'est l'inverse de Faisons un peu "deciph4r4ng"
Dans ce défi, votre tâche consiste à chiffrer une chaîne. Heureusement, l'algorithme est assez simple: en lisant de gauche à droite, chaque caractère d'écriture typique (plage ASCII 32-126) doit être remplacé par un nombre N (0-9) pour indiquer qu'il est identique au caractère N + 1. positions devant elle. L'exception est lorsque le caractère n'apparaît pas dans les 10 positions précédentes de la chaîne d'origine. Dans ce cas, vous devez simplement réimprimer le personnage. En réalité, vous devriez pouvoir inverser l'opération par rapport au défi initial.
Exemple
La chaîne d'entrée "Programming"
serait encodée de cette façon:
Par conséquent, le résultat attendu est "Prog2am0in6"
.
Clarifications et règles
- La chaîne en entrée contiendra exclusivement des caractères ASCII compris entre 32 et 126. Vous pouvez supposer qu'il ne sera jamais vide.
- La chaîne d'origine est garantie de ne contenir aucun chiffre.
- Une fois qu'un caractère a été encodé, il peut être référencé par un chiffre ultérieur. Par exemple,
"alpaca"
devrait être codé comme"alp2c1"
. - Les références ne seront jamais entourées d'une chaîne: seuls les caractères précédents peuvent être référencés.
- Vous pouvez écrire un programme complet ou une fonction qui imprime ou produit le résultat.
- C'est le code de golf, donc la réponse la plus courte en octets gagne.
- Les échappatoires standard sont interdites.
Cas de test
Input : abcd
Output: abcd
Input : aaaa
Output: a000
Input : banana
Output: ban111
Input : Hello World!
Output: Hel0o W2r5d!
Input : this is a test
Output: this 222a19e52
Input : golfing is good for you
Output: golfin5 3s24o0d4f3r3y3u
Input : Programming Puzzles & Code Golf
Output: Prog2am0in6 Puz0les7&1Cod74G4lf
Input : Replicants are like any other machine. They're either a benefit or a hazard.
Output: Replicants 4re3lik448ny3oth8r5mac6in8.8T64y'r371it9376a1b5n1fit7or2a1h2z17d.