배경
이 문제에 대한 솔루션이 설명 인 Dyalog APL 16.0 릴리스를 축하 합니다.{⊢⌺(≢⍵)⊢⍵}
태스크
홀수 길이 n 의 인쇄 가능한 ASCII 문자열 이 제공 되면 문자열을 가로로 가운데에 놓고 세로로 가운데에 두도록 복제하고 각 행과 열에 동일한 문자열의 곡예를 사용하여 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 디
마지막으로 경계 상자 안에있는 것만 반환합니다.
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 씨에게이 도전에 대한 아이디어를 제외한 모든 것에 감사합니다 .