前書き
Aliceは、Martin Enderによる2次元言語で、2つの異なる実行モード、cardinalとordinalがあります。命令ポインタがミラー(または)を通過すると、1つのモードから別のモードに切り替わります。/
\
この課題では、コマンドが文字列を操作し、命令ポインターが斜めに移動して、コードの端に対して跳ねる序数モードに焦点を当てます。
通常モードでのみ動作する単純なプログラムは、次の例のように、非常にコンパクトなスタイルで記述できます。
/fbd/
@aec\
ここでIPは、最初のセルが東に行くから枢機卿モードで起動し、第1のミラーを透過し、斜めに移動し、バウンス、コマンドの実行を開始するa
、b
とc
。それは、それは他のミラーに向けて南に行くと、その後、西に向けたバックをバウンスコマンドに遭遇した起動可能北東ミラーに遭遇したd
、e
、f
、そして最後に@
、プログラムを終了します。
この種の構造は非常にコンパクトですが、記述と保守が容易ではありません(単一のコマンドを追加すると、ほとんどのコードの順序を変更しなければならなくなる可能性があります)。書式設定を手伝ってください。
タスク
コマンドのシーケンスがあり、各コマンドが単一の印刷可能なASCII文字である場合、シーケンスの前半が2行目の最初の文字から始まり、常に右に向かって斜めに移動できるように、コマンドを2行に並べ替えます。後半は残りの文字を右から左に読みながら読むことができます。ミラーと終了記号については心配しないでください。自分で追加します。
したがって、たとえば、入力abcdef
を指定すると、出力する必要があります
fbd
aec
入力が奇数長の場合、遭遇するコマンドのシーケンスが同じままである限り、どこかに単一のスペース(Aliceでは何もしない)を追加する必要があります。また、長さが1文字だけ異なる2つの行を出力するように選択することもできます。その場合、短い方の行の終わりに1つのスペースがあると見なされます。
ルール
これはcode-golfであり、バイト単位での最短の答えが勝ちます!
- デフォルトの入出力メソッドのいずれかを介して入出力できます
- 入力は、1行の印刷可能なASCII文字で構成されます
- 出力では単一の末尾改行が許可されます
- プログラムの一部の出力は、Aliceプログラムとして実行すると、完全に正しい動作にならない場合があります(たとえば、パディングスペースが文字列リテラル内に挿入されている場合)。あなたはこれらの状況に自分自身を心配する必要はありません
- 標準の抜け穴は禁止されています
テストケース
--Input
abcdef
--Output
fbd
aec
--Input
123
--Output
2
13
OR
31
2
OR
3
12
OR
32
1
--Input
O
--Output
O
OR
O
--Input
"Hello, World!"o
--Output
oH!lloo
""edlr,W
--Input
i.szR.szno
--Output
o.zz.
inssR
--Input
" ^^} .~[}.~~[}{~~{}[^^^^.""!}"r.h~;a*y'~i.*So
--Output
o *^i}'.*[;.h~r}}~"{.[^
"S .^~ y~a}~~.["{!~"}^^^
(Odd length, your solution may be different)