Эта задача довольно проста и использует три разных символа оператора. Ваша задача, учитывая простую последовательность букв, выполните следующую задачу , чтобы закодировать его с помощью <, >, *. Вы можете использовать заглавные или строчные буквы, вам не нужно обрабатывать оба.
Шифр Объяснение
Шифр прост, вы используете операции увеличения и уменьшения, чтобы перейти от буквы 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а не его собственный ввод?