Fondo
Celebrando el lanzamiento de Dyalog APL 16.0 , donde la solución a este problema es la {⊢⌺(≢⍵)⊢⍵}
explicación
Tarea
Dada una cadena ASCII imprimible de longitud impar n , haga un cuadrado n × n con la cadena centrada horizontalmente, duplicada para centrarse verticalmente, y con acrósticos de la misma cadena en cada fila y columna. Tenga en cuenta que todas las cadenas excepto las centradas se cortarán para mantener el tamaño del cuadrado n × n .
La explicación de su código será muy apreciada.
Reglas
- Puede tener espacios en blanco al final y nuevas líneas (esto incluye el triángulo inferior derecho)
- Puede devolver una lista de cadenas.
Ejemplo usando la cadena ABXCD
:
n es 5. Primero dibujamos las dos cadenas centradas, una horizontal y otra vertical:
┌─────┐ │ A │ │ B │ │ABXCD│ │ C │ │ D │ └─────┘
(Se agregó un cuadro delimitador 5 × 5 para mayor claridad)
Luego colocamos todos los acrósticos posibles, horizontal y verticalmente:
UNA AB ┌─────┐ │ ABX│CD │ ABXC│D │ABXCD│ A│BXCD │ AB│XCD │ └─────┘ discos compactos re
Finalmente, devolvemos solo lo que está dentro del cuadro delimitador:
ABX ABXC ABXCD BXCD XCD
Casos de prueba
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
Expresiones de gratitud
Gracias a dzaima , Leaky Nun , Mr. Xcoder por todo menos la idea de este desafío.