このタスクはかなり単純で、3つの異なる「演算子」文字を使用します。あなたの仕事は、使用してそれをエンコードするには、次のタスクを実行し、文字のシンプルなシーケンスを与えられています<
、>
、*
。大文字または小文字を使用することもできますが、両方を処理する必要はありません。
暗号の説明
暗号は簡単です。インクリメントおよびデクリメント操作を使用し*
て、「送信」機能として、文字1から末尾の文字まで移動します。「増分」の演算子はになり>
、「減分」はになります<
。
単語を使用した例adbc
:
- 単語の最初の文字から始めて、その文字を出力します。
a
- 次に、
>
and<
(brainfuckなど)を使用して、現在の文字を次の文字に「ナビゲート」します。a>
その結果a
、手紙が1だけ「上がる」ことになりb
ます。あなたは手紙を下げるので、a<
結果になりz
ます(折り返します、あなたは常に操作の数が最も少なくなる方向を選択する必要があります)。 - 正しいminimalizedの組み合わせ出力した後
<
と>
出力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$
)を示すために、任意の非文字/数字/予約文字を使用できます。- あなたはエンディングを持たなければなりません
*
、それは繰り返しには暗黙的ではありません。 - 空の文字列は想定していませんが、単一の文字を使用できます。
- 次の文字と等距離にある場合は、方向を選択できます。
- これはcode-golfであり、バイト数が最も少なくなります。
あなたの答えを説明してください。他の人がこの方法で学ぶのに役立ちます。
zl
使用すべきだと思います>
。
alphabet
私の意見であるa>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*
とzl
あるべきz>>>>>>>>>>>>*
とするためには、banana
第2の解決策は存在している必要がありますb<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*
zm
。@jorgの良いキャッチは、それらすべてを修正し、手作業でした。
abcdefghijklmnopqrstuvwxyz
はそれ自身の入力ではなく、それ自体の入力ですか?