Esta es la inversa de Hagamos algo de "deciph4r4ng"
En este desafío, su tarea es cifrar una cadena. Afortunadamente, el algoritmo es bastante simple: leyendo de izquierda a derecha, cada carácter de escritura típico (rango ASCII 32-126) debe ser reemplazado por un número N (0-9) para indicar que es el mismo que el carácter N + 1 posiciones delante de él. La excepción es cuando el carácter no aparece dentro de las 10 posiciones anteriores en la cadena original. En ese caso, simplemente debe imprimir el personaje nuevamente. Efectivamente, debería ser capaz de revertir la operación desde el desafío original.
Ejemplo
La cadena de entrada "Programming"
se codificaría de esta manera:
Por lo tanto, la salida esperada es "Prog2am0in6"
.
Aclaraciones y reglas.
- La cadena de entrada contendrá caracteres ASCII en el rango 32 - 126 exclusivamente. Puede suponer que nunca estará vacío.
- Se garantiza que la cadena original no contendrá ningún dígito.
- Una vez que un carácter ha sido codificado, a su vez puede ser referenciado por un dígito posterior. Por ejemplo,
"alpaca"
debe codificarse como"alp2c1"
. - Las referencias nunca se ajustarán a la cadena: solo se puede hacer referencia a los caracteres anteriores.
- Puede escribir un programa completo o una función, que imprime o genera el resultado.
- Este es el código de golf, por lo que gana la respuesta más corta en bytes.
- Las lagunas estándar están prohibidas.
Casos de prueba
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.