入力:
文字列
出力:
1)まず、正方形の長さ(つまり、1、4、9、16、25、36など)が残るまで、入力文字列の末尾の文字を削除します。
したがって、abcdefghijklmnopqrstuvwxyz
(長さ26)はabcdefghijklmnopqrstuvwxy
(長さ25)。
2)次に、これを正方形に、一度に1行ずつ、左から右に配置します。
abcde
fghij
klmno
pqrst
uvwxy
3)次のように4方向すべてに折ります(外側に折りたたまれた「ブロック」に展開する内側の文字がなくなるまで展開を続けます)。
m
qrs
l n
ghi
abcde
ihgf jihg
mn lk on lm
srqp tsrq
uvwxy
qrs
l n
ghi
m
外側に折りたたむと、基本的にこのようにミラーリングされます(これらの例の「インデックス」を表す明確化として数字が追加されています)。
左側を広げると:
123 to: 321 123
fghij ihgf j
右側を折り畳むとき:
123 to: 123 321
fghij f jihg
上に折り畳むとき:
3q
2l
1g
b to: b
1g 1
2l 2
3q 3
v v
下に折るとき:
b b
1g 1
2l 2
3q 3
v to: v
3q
2l
1g
チャレンジルール:
- 入力には常に少なくとも1文字が含まれると想定できます(これも出力になります)。
- 出力形式は柔軟であるため、STDOUTまたはSTDERRに出力できます。文字列配列/リストまたは文字2D配列として返します。改行を含む単一の文字列。等
- 入力には英数字(
a-zA-Z0-9
)のみが含まれます - また、英数字以外の文字を使用して、ドットのように、ASCIIアート出力内またはその周囲のスペースを埋めることもでき
.
ます。 - 末尾のスペースと単一の末尾の改行はオプションです。
- 外側に折りたたまれた「ブロック」に展開する中心がなくなるまで展開を続けます。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿することを妨げないでください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、必要に応じて説明を追加してください。
テストケース:
Input: abcdefghijklmnopqrstuvwxy
Output:
m
qrs
l n
ghi
abcde
ihgf jihg
mn lk on lm
srqp tsrq
uvwxy
qrs
l n
ghi
m
Input: A
Ouput:
A
Input: ThisIsATest
Output:
I
Thi
Is sI
ATe
I
Input: HowAboutAVeryLongExampleWhichIsAlsoAnEvenSquareInsteadOfOddOneAndExceeds64Chars
Output:
An
ch
xamp
i I
o E
quar
steadO
S e
s v
h s
E l
VeryLo
HowAbout
oLyreVA noLyreV
xampl Eg el Examp
hci Is hW As hi Ihc
nAo Ev sl ev so EnA
quare Sn Ie Squar
Odaetsn fOdaets
OddOneAn
steadO
S e
s v
h s
E l
VeryLo
xamp
i I
o E
quar
An
ch
Input: Lenght7
Output:
Le
ng
Input: abc
Output:
a