アリス、49バイト* 2 = 98 144
/:G!4o3r8"1=5',0Grey9Z<@
\"b0=dnm 2'i%g<7R6~e.;o/
オンラインでお試しください!
説明
/...@
\.../
これは、順序モードで完全に動作する線形プログラムの通常のフレームワークです。ジグザグ制御フローを展開すると、以下が得られます。
"G04d3m821i5g,7G6ee9;<:b!=onr "'=%'<0Rr~y.Zo@
基本的な考え方は、文字変換を使用して2回以上繰り返される文字を避けることです。これから行う音訳は次のとおりです。
input: "G04d3m821i5g,7G6ee9;<:b!"
from: "0123456789:;<"
to: "onr "
アリスで音訳が機能する方法は、from
とto
文字列が最初にその長さのLCMまで繰り返されることですが、この場合、すべての問題はfrom
文字列の長さなので、次のようになります:
from: "0123456789:;<"
to: "onr onr onr o"
このようにして、o
s を表す4つの異なる文字、およびn
、r
およびスペースを表す3つの文字を取得します。from
次のように範囲拡張を使用して文字列を生成できます。
'< Push "<".
0 Append a zero.
R Reverse.
r Range expansion.
唯一の問題は、文字列と文字列の"
両方に4つ必要だということです。それを避けるために、両方を単一の文字列に入れて、区切り文字として使用する位置で分割します。input
to
=
"G04d3m821i5g,7G6ee9;<:b!=onr "
Push the string containing both parts.
'=% Split around "=".
残りはただ:
~ Swap "from" and "to".
y Transliterate.
.Z Duplicate and interleave. This duplicates each character.
o Print.
@ Terminate the program.