Saya mendefinisikan empat gaya kotak:
+-----+ ooooooo ^^^^^ *******
| 1 | o 2 o < 3 > * 4 *
| | o o < > * *
+-----+ ooooooo vvvvv *******
Tulis program atau fungsi yang diberi bilangan bulat dan string akan menemukan salah satu kotak di atas di dalam string dan mengubah gayanya menjadi gaya kotak yang diminta oleh pengguna. Sebagai contoh:
1
This is a test document.
It ********* has
no *purpose* other than
dem*onstrat*ion.
*********
Menjadi:
This is a test document.
It +-------+ has
no |purpose| other than
dem|onstrat|ion.
+-------+
Anda dapat berasumsi bahwa input tersebut mengandung tepat satu kotak yang valid yang setidaknya 3x3. Kode Anda harus mengabaikan kotak yang tidak lengkap / salah:
ooooooooooooooooooooooooooooooooo
o This is not a box. o This is. o
ooooooooooo ooooo ooooooooooooooo
^^^^ ######
<NOPE> #NOPE#
vVVv ######
Kode terpendek dalam byte menang.
o This is. o
dano This is no
(dengan garis dio
atas dan di bawah, tentu saja).Jawaban:
Julia,
995818713613 byteTidak digabungkan dengan penjelasan:
Berlawanan dengan bagaimana saya pertama kali mendekatinya, kode ini hanya akan bekerja dengan benar untuk nomor tipe "valid" - 1, 2, 3, atau 4. Kode ini dibagi menjadi dua bagian - kotak-pencari, dan kotak-replacer. Kode pencari-kotak, fungsi
f(t)
, menggunakan regex untuk menemukan atasan dan, untuk kotak yang lebih sederhana (tipe 2 dan 4), bawah.Regex pertama adalah cara paling sederhana yang bisa saya temukan untuk menemukan kotak-puncak. Inilah logikanya:
Kode digunakan seperti ini:
Pencetakan tidak termasuk dalam fungsi, karena format output tidak ditentukan - Saya baru saja mengembalikan string, Anda dapat mencetak setelah itu seperti yang terlihat di atas.
sumber