На це надихає понеділок Міні-гольф №6: Meeesesessess upp teeexexextext
Фон
У ETHproductions виникли труднощі з введенням тексту на його звичайну веб-сторінку. Кожен раз, коли він використовує цифри чи літери, текст буде meeesesessesseseesesesesesesessed. Ваше завдання - допомогти йому набрати, щоб досягти нормальної поведінки.
Перетворення
Перетворення впливає на алфавітно-цифрові символи ( [0-9A-Za-z]
), обмежені будь-якими символами, що не є цифрами. У наступному прикладі перший рядок буде перетворений на другий (інші рядки показують розбиття перетворення)
An12num:
Annn1n12n12nn12nn12nun12nun12numn12num
A
nn
n1
n12
n12nn12n
n12nun12nu
n12numn12num
Зокрема, будь-який буквено-цифровий символ після першого в пробігу буде перетворений на весь пробіг поки що, крім першого символу . Крім того, якщо символ є буквою (на відміну від цифри), символ перетвориться на подвійний пробіг.
На щастя, backspace видалить останнього символу, а також скидає початок запуску.
Завдання
Цього разу ваше завдання - не виконати перетворення. Натомість, задавши рядок введення, ви повинні повернути закодований текст, який, якщо його перетворити, призведе до введення. Вихід повинен бути якомога короткішим, де \<char>
рахується як один символ.
Текст кодується так:
\ -> \\
backspace character -> \b
linefeed -> \n
Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка або аргумент функції та вивівши результат через STDOUT (або найближчу альтернативу), значення повернення функції або параметр функції (out).
Тестові справи
Кожен тестовий випадок - це два рядки, перший - вхідний, другий - вихідний.
Heeeeeelp me. It shouldn't be messed up.
Hee \blp\b me\b. It\b sh\bou\bld\bn't be\b me\bss\bed\b up\b.
alert("Hello, world!");
al\ber\bt("He\bll\bo, wo\brl\bd!");
1223234234523456
123456
1
кожного разу) у пробіжки.