Фон
Святкування випуску Dyalog APL 16.0 , де вирішенням цієї проблеми є {⊢⌺(≢⍵)⊢⍵}
Пояснення
Завдання
Давши рядок ASCII для друку з непарною довжиною n , складіть n × n квадрат з рядком по центру по горизонталі, дубльованому по центру по вертикалі та з акростикою тієї ж строки в кожному рядку та стовпці. Зауважте, що всі рядки, крім центрів, будуть відрізані, щоб зберегти розмір квадрата n × n .
Пояснення вашого кодексу буде дуже вдячно.
Правила
- У вас можуть бути пробіли пробілів та нові рядки (сюди входить праворуч трикутник)
- Ви можете повернути список рядків
Приклад за допомогою рядка ABXCD
:
n дорівнює 5. Спершу малюємо дві центрировані рядки, одну горизонтальну та одну вертикальну:
┌─────┐ │ A │ │ B │ │ABXCD│ │ C │ │ D │ └─────┘
(Для наочності додано 5 × 5 обмежувальної коробки)
Потім розміщуємо всі можливі акростики по горизонталі та вертикалі:
А 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
Подяка
Завдяки dzaima , Leaky Nun , містеру Xcoder за все, крім самої ідеї цього виклику.