此任务非常简单,并使用了三个不同的“操作员”字符。你的任务是,给定的字母简单的顺序,请执行以下任务使用对它进行编码<
,>
,*
。您可以选择使用大写或小写字母,而不必同时使用两者。
密码说明
密码很简单,您使用递增和递减运算从字母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
,不是它自己的输入吗?