Latar Belakang
Merayakan rilis Dyalog APL 16.0 , di mana solusi untuk masalah ini adalah {⊢⌺(≢⍵)⊢⍵}
Penjelasan
Tugas
Diberikan string ASCII yang dapat dicetak dengan panjang ganjil n , buat sebuah n × n persegi dengan string terpusat secara horizontal, diduplikasi untuk dipusatkan secara vertikal, dan dengan akrostik dari string yang sama di setiap baris dan kolom. Perhatikan bahwa semua tapi string yang berpusat akan dipotong untuk menjaga ukuran persegi ini n × n .
Penjelasan kode Anda akan sangat dihargai.
Aturan
- Anda mungkin memiliki trailing spasi dan baris baru (ini termasuk segitiga kanan bawah)
- Anda dapat mengembalikan daftar string
Contoh menggunakan string ABXCD
:
n adalah 5. Pertama kita menggambar dua string tengah, satu horizontal dan satu vertikal
┌─────┐ │ A │ │ B │ │ABXCD│ │ C │ │ D │ └─────┘
(5 × 5 kotak pembatas ditambahkan untuk kejelasan)
Kemudian kami menempatkan semua akrostik yang mungkin, secara horizontal dan vertikal:
SEBUAH AB ┌─────┐ │ ABX│CD │ ABXC│D │ABXCD│ A│BXCD │ AB│XCD │ └─────┘ CD D
Akhirnya, kami hanya mengembalikan apa yang ada di dalam kotak pembatas:
ABX ABXC ABXCD BXCD XCD
Uji kasus
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
Ucapan Terima Kasih
Berkat dzaima , Leaky Nun , Tn. Xcoder untuk semuanya kecuali gagasan tantangan ini.