Це завдання досить просте і використовує три чіткі "операторські" символи. Ваше завдання, з огляду на просту послідовність літер, виконайте наступне завдання , щоб закодувати його з допомогою <
, >
, *
. Ви можете скористатися великими або малими літерами, не потрібно обробляти обидва.
Пояснення шифру
Шифр простий, ви використовуєте операції з збільшення та зменшення, щоб переходити від літери 1 до кінця букви, *
будучи вашою функцією "подати". Оператор для "приросту" буде, >
а "декремент" буде <
.
Приклад використання слова adbc
:
- Почніть з першої літери слова, виведіть цю букву.
a
- Далі, використовуйте
>
та<
(як brainfuck), щоб "перейти" поточного листа до наступного.a>
це призведе до "підвищення"a
на 1 листb
.a<
це призведе до того,z
що ви опускаєте букву (вона загортає, ви завжди повинні вибирати напрямок, що призводить до ОСТАННЯ кількість операцій). - Після виведення правильної мінімізованої комбінації
<
та>
виведення a*
позначаємо, що ми дійшли до наступної літери.
Крок для кодування adbc
:
a # a
a>>>* # ad
a>>>*<<* # adb
a>>>*<<*>* # adbc
Приклади
Крок для кодування aza
:
a # a
a<* # az
a<*>* # aza
Більше прикладів:
"abcdef" = "a>*>*>*>*>*"
"zyaf" = "z<*>>*>>>>>*"
"zzzzzz" = "z*****"
"z" = "z"
"zm" = "z<<<<<<<<<<<<<*" or "z>>>>>>>>>>>>>*" (equidistant)
"zl" = "z>>>>>>>>>>>>*"
"alphabet" = "a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*"
"banana" = "b<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*" OR "b<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*"
"abcdefghijklmnopqrstuvwxyz" = "a>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*"
"abcdefz" = "a>*>*>*>*>*<<<<<<*"
Правила
- Ми кодуємо не розшифровуючи, тому не псуйте це.
- Ви можете припустити, що повідомлення буде містити літери
[A-Z]
або[a-z]
, на ваш вибір. - Для позначення
*
(EG$
) ви можете використовувати будь-який не буквений / цифровий / зарезервований символ . - Ви повинні мати закінчення
*
, воно не вказується на повтори. - Ви можете вважати, що немає порожніх рядків, але можливий один символ.
- Якщо він розташований рівновіддалено до наступної літери, ви можете вибрати напрямок.
- Це кодовий гольф , виграє найменший байт.
Поясніть, будь ласка, свою відповідь, це допомагає іншим навчатися таким чином.
zl
слід використовувати >
.
alphabet
на мій погляд , a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*
і zl
має бути z>>>>>>>>>>>>*
і banana
має друге рішення існуєb<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*
zm
. @jorg хороший улов, виправлений у всіх, було ручним зусиллям.
abcdefghijklmnopqrstuvwxyz
і не є його власним вкладом?