サンドボックスの投稿はこちら。
文字列を「スプリング化」する関数またはプログラムを作成します。
- 入力は標準入力の文字列、または最も近い代替です
- 入力には、印刷可能なASCIIやスペースのみが含まれます。
- 出力は、標準出力または最も近い代替出力になります
- 末尾の改行とスペースは許容されます
文字列をスプリング化する方法
- 必要な数のASCIIスプリングコイルに文字列をフォーマットします
- コイルをスペースで埋め、最も近いコイルまで
- コイルの周りのバネに続いて、文字を読みます
これはASCIIスプリングコイルです。
#
# ####
# #
# ####
#
どこ#sが文字列の文字であります
以下に例を示します。
abcdefghijklmnopqrstuvwxyz
になる
a
b cdef
g h
i jklm
n
o
p qrst
u v
w xyz.
.
.可視性のためにsがスペースを置き換える場所。
次に、ASCIIスプリングを下に、ループの周りに文字列を読み戻し、gとをu2回押します。
1| a <-3
V b cdef
g h
4| i jklm
V n 2->
...
...与える:
abgjklmhfedcginopuxyz vtsrquw (末尾スペース付き)
テストケース
(末尾のスペースを強調するために引用符を追加しました-IOに関しては無視してください)
I: "abcdefghijklmnopqrstuvwxyz"
O: "abgjklmhfedcginopuxyz vtsrquw "
I: "!@#"
O: "!@ # "
I: ""
O: ""
I: "12345 67890"
O: "12690 7 54368 "
I: " "
O: " "
出力長は常に15の倍数であることに注意してください。これは、スプリングコイルの長さです。
これはcode-golfであるため、バイト単位の最短回答が優先されます。

メインループは右から左への実行を開始し、プレイフィールドの右側に回り込みます。これは、stdinから最初の文字を読み取り、EOFの場合は終了する場所です。
次のセクションでは、式を使用してEOF文字がスペースに変換されるようにします
文字のコピーが一時メモリに保存され、現在のインデックスのルックアップが4行目(
)のテーブルで実行され、文字を出力するかどうかが決定されます。
文字を出力する必要がある場合は、左のブランチを使用します。ここでスワップが実行され、次に発生するスワップがキャンセルされます。その後、ゼロがプッシュされ、ブランチが右に強制的に移動されます。
文字が出力されなかった場合、インデックスカウンターの下のスタックにスワップダウンします(これは左ブランチでキャンセルされるスワップです)。どちらの場合も、現在のインデックスオフセットで文字をメモリに保存し、インデックスをインクリメントし、13より大きいかどうかを確認します。
そうでない場合は、stdinから次の文字を読み取り、内側のループを繰り返します。
そうである場合、14文字のセットが終了します。7文字が出力され(