Hintergrund
Wir feiern die Veröffentlichung von Dyalog APL 16.0 , wo die Lösung für dieses Problem in {⊢⌺(≢⍵)⊢⍵}
Erläuterung besteht
Aufgabe
Wenn Sie eine druckbare ASCII-Zeichenfolge mit der ungeraden Länge n erhalten , machen Sie ein n × n- Quadrat, wobei die Zeichenfolge horizontal zentriert, für die vertikale Zentrierung dupliziert und in jeder Zeile und Spalte dieselbe Zeichenfolge enthalten ist. Beachten Sie, dass alle Zeichenfolgen mit Ausnahme der zentrierten Zeichenfolgen abgeschnitten werden, um die Größe des Quadrats n × n beizubehalten .
Die Erklärung Ihres Codes wird sehr geschätzt.
Regeln
- Möglicherweise haben Sie nachgestellte Leerzeichen und Zeilenumbrüche (dies schließt das untere rechte Dreieck ein).
- Sie können eine Liste von Zeichenfolgen zurückgeben
Beispiel mit dem String ABXCD
:
n ist 5. Zuerst zeichnen wir die zwei zentrierten Zeichenketten, eine horizontale und eine vertikale:
┌─────┐ │ A │ │ B │ │ABXCD│ │ C │ │ D │ └─────┘
(5 × 5-Begrenzungsrahmen zur Verdeutlichung hinzugefügt)
Dann platzieren wir alle möglichen Akrostiken horizontal und vertikal:
EIN AB ┌─────┐ │ ABX│CD │ ABXC│D │ABXCD│ A│BXCD │ AB│XCD │ └─────┘ CD D
Schließlich geben wir nur das zurück, was sich innerhalb des Begrenzungsrahmens befindet:
ABX ABXC ABXCD BXCD XCD
Testfälle
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
Danksagung
Vielen Dank an Dzaima , Leaky Nun , Mr. Xcoder für alles andere als die Idee dieser Herausforderung.