Questo è l'inverso di Let's do some "deciph4r4ng"
In questa sfida, il tuo compito è crittografare una stringa. Fortunatamente, l'algoritmo è piuttosto semplice: leggendo da sinistra a destra, ogni tipico carattere di scrittura (intervallo ASCII 32-126) deve essere sostituito da un numero N (0-9) per indicare che è uguale al carattere N + 1 posizioni prima di esso. L'eccezione è quando il carattere non appare nelle precedenti 10 posizioni nella stringa originale. In tal caso, dovresti semplicemente stampare nuovamente il personaggio. In effetti, dovresti essere in grado di invertire l'operazione dalla sfida originale.
Esempio
La stringa di input "Programming"
verrebbe codificata in questo modo:
Quindi, l'output previsto è "Prog2am0in6"
.
Chiarimenti e regole
- La stringa di input conterrà esclusivamente caratteri ASCII nell'intervallo 32-126. Puoi presumere che non sarà mai vuoto.
- La stringa originale è garantita per non contenere alcuna cifra.
- Una volta che un personaggio è stato codificato, può a sua volta fare riferimento a una cifra successiva. Ad esempio,
"alpaca"
dovrebbe essere codificato come"alp2c1"
. - I riferimenti non avvolgeranno mai la stringa: solo i caratteri precedenti possono essere referenziati.
- È possibile scrivere un programma completo o una funzione, che stampa o genera il risultato.
- Questo è il golf del codice, quindi vince la risposta più breve in byte.
- Sono vietate le scappatoie standard.
Casi 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.