Это обратная сторона Давайте сделаем некоторые "deciph4r4ng"
В этой задаче ваша задача - зашифровать строку. К счастью, алгоритм довольно прост: при чтении слева направо каждый типичный символ записи (диапазон ASCII 32-126) должен быть заменен числом N (0-9), чтобы указать, что оно совпадает с символом N + 1. позиции перед ним. Исключение составляют случаи, когда символ не появляется в предыдущих 10 позициях в исходной строке. В этом случае вы должны просто напечатать символ снова. По сути, вы должны иметь возможность отменить операцию от первоначального вызова.
пример
Входная строка "Programming"
будет закодирована следующим образом:
Следовательно, ожидаемый результат равен "Prog2am0in6"
.
Разъяснения и правила
- Входная строка будет содержать только символы ASCII в диапазоне от 32 до 126. Вы можете предположить, что он никогда не будет пустым.
- Оригинальная строка гарантированно не содержит никаких цифр.
- После того, как символ был закодирован, на него может в свою очередь ссылаться следующая цифра. Например,
"alpaca"
должно быть закодировано как"alp2c1"
. - Ссылки никогда не будут обтекать строку: на них могут ссылаться только предыдущие символы.
- Вы можете написать либо полную программу, либо функцию, которая либо печатает, либо выводит результат.
- Это код гольф, поэтому выигрывает самый короткий ответ в байтах.
- Стандартные лазейки запрещены.
Контрольные примеры
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.