バックグラウンド
この問題の解決策が説明されているDyalog APL 16.0のリリースを祝う{⊢⌺(≢⍵)⊢⍵}
仕事
奇数の長さ nの印刷可能なASCII文字列を指定すると、文字列を水平方向に中央揃え、垂直方向に中央揃えに複製し、各行と列に同じ文字列のアクロスティックを含むn × nの正方形を作成します。正方形のサイズn × nを維持するために、中央にある文字列以外はすべて切り取られることに注意してください。
コードの説明は大歓迎です。
ルール
- 末尾に空白と改行がある場合があります(これには右下の三角形が含まれます)
- 文字列のリストを返すことがあります
文字列を使用した例ABXCD
:
nは5です。最初に、1つの水平方向と1つの垂直方向の2つの中心の文字列を描画します。
┌─────┐┐ │A│ │B│ │ABXCD│ │C│ │D│ └─────┘┘
(明確にするために5×5の境界ボックスが追加されました)
次に、可能なすべてのアクロスティックを水平および垂直に配置します。
A AB ┌─────┐┐ │ABX│CD │ABXC│D │ABXCD│ A│BXCD│ AB│XCD│ └─────┘┘ CD D
最後に、境界ボックス内にあるもののみを返します。
ABX ABXC ABXCD BXCD XCD
テストケース
World
:
Wor
Worl
World
orld
rld
mississippi
:
missis
mississ
mississi
mississip
mississipp
mississippi
ississippi
ssissippi
sissippi
issippi
ssippi
Pneumonoultramicroscopicsilicovolcanoconiosis
:
Pneumonoultramicroscopi
Pneumonoultramicroscopic
Pneumonoultramicroscopics
Pneumonoultramicroscopicsi
Pneumonoultramicroscopicsil
Pneumonoultramicroscopicsili
Pneumonoultramicroscopicsilic
Pneumonoultramicroscopicsilico
Pneumonoultramicroscopicsilicov
Pneumonoultramicroscopicsilicovo
Pneumonoultramicroscopicsilicovol
Pneumonoultramicroscopicsilicovolc
Pneumonoultramicroscopicsilicovolca
Pneumonoultramicroscopicsilicovolcan
Pneumonoultramicroscopicsilicovolcano
Pneumonoultramicroscopicsilicovolcanoc
Pneumonoultramicroscopicsilicovolcanoco
Pneumonoultramicroscopicsilicovolcanocon
Pneumonoultramicroscopicsilicovolcanoconi
Pneumonoultramicroscopicsilicovolcanoconio
Pneumonoultramicroscopicsilicovolcanoconios
Pneumonoultramicroscopicsilicovolcanoconiosi
Pneumonoultramicroscopicsilicovolcanoconiosis
neumonoultramicroscopicsilicovolcanoconiosis
eumonoultramicroscopicsilicovolcanoconiosis
umonoultramicroscopicsilicovolcanoconiosis
monoultramicroscopicsilicovolcanoconiosis
onoultramicroscopicsilicovolcanoconiosis
noultramicroscopicsilicovolcanoconiosis
oultramicroscopicsilicovolcanoconiosis
ultramicroscopicsilicovolcanoconiosis
ltramicroscopicsilicovolcanoconiosis
tramicroscopicsilicovolcanoconiosis
ramicroscopicsilicovolcanoconiosis
amicroscopicsilicovolcanoconiosis
microscopicsilicovolcanoconiosis
icroscopicsilicovolcanoconiosis
croscopicsilicovolcanoconiosis
roscopicsilicovolcanoconiosis
oscopicsilicovolcanoconiosis
scopicsilicovolcanoconiosis
copicsilicovolcanoconiosis
opicsilicovolcanoconiosis
picsilicovolcanoconiosis
icsilicovolcanoconiosis