(Terinspirasi cukup banyak oleh tantangan ini )
Dalam tantangan asli Anda membuat ritsleting horizontal, namun, melihat ke bawah hoodie saya, ritsleting saya jauh lebih vertikal (dan sedikit rusak): P
Memasukkan
Anda akan diberi string tunggal ( s
), dan sepasang bilangan bulat ( a
dan b
) dalam format apa pun. Dimana:
a < (length-of-s / 2)
b <= ((length-of-s / 2) - (a + 1)) / 6
Output dan Penilaian
Program Anda dapat berupa program lengkap atau fungsi yang menghasilkan string tunggal dengan pemformatan atau array yang benar (satu item per baris) yang Anda pilih. Leading dan trailing spasi dan baris baru adalah opsional selama karakter dari output semuanya berbaris. misalnya.
["f r"],["u e"],["l p"],["l p"],["y i"],[" o z "],[" p n "],[" e "]
atau
"f r\nu e\nl p\nl p\ny i\n o z \n p n \n e "
adalah keluaran yang dapat diterima untuk test case 1
Celah Standar dilarang dan kode terpendek dalam byte menang. Jawaban apa pun tanpa penjelasan tidak akan dapat menang.
Penjelasan
Untuk membuat ritsleting, Anda harus terlebih dahulu menghapus spasi putih atau karakter baris baru dari string. Dan kemudian lipat menjadi dua seperti itu (lihat test case 1 untuk informasi lebih lanjut)
abcde fgh ij klmnopqr
menjadi dua string di bawah ini, perhatikan paruh kedua dibalik.
abcdefghi
dan rqponmlkj
Kemudian mulai dari awal setiap string kita menempatkan karakter yang diindeks sama dari setiap substring ke satu baris dengan spasi ditentukan sebagai berikut:
[0] a r -- (a-3) five spaces
[1] b q -- (a-2) three spaces
[2] c p -- (a-1) one space
[3] d -- (a)
[4] o
[5] e
[6] n
etc...
Itu membuat dasar untuk ritsleting kami. Sekarang bilangan bulat a
dan b
.
a
adalah lokasi pos kami. Untuk menentukan di mana ritsleting berada, kami menggunakan indeks dari garis keluaran kami sebagai titik untuk menutup ritsleting kami. misal kotak yang dikurung [3]
dalam contoh saya di atas adalah tempat zip.
Sebelum ritsleting kami mencapai penutupan, ritsleting di atas harus tetap berada pada celah lima ruang hingga mencapai di a-2
mana ia menutup hingga 3 ruang dan di a-1
mana ia menutup ke 1 ruang. Supaya jelas, dalam contoh di atas a = 3
(0-diindeks)
b
adalah jumlah lubang di ritsleting saya. Untuk membuat lubang di zip, kami membagi string lagi dengan spasi.
Dimulai dengan indeks lubang contoh saat h
kami meningkatkan jarak h-1
ke satu ruang, h
ke 3 ruang dan h+1
kembali ke satu ruang, meninggalkan h-2
dan h+2
dengan hanya satu karakter per baris karena mereka dihitung sebagai bagian dari lubang.
Setelah zip dan di antara masing-masing lubang harus ada celah satu karakter sehingga zip kami terlihat sepenuhnya terhubung di antara lubang.
Anda bisa memilih indeks lubang, tetapi semuanya harus ada di bagian 'tertutup' ritsleting.
Again using 'abcdefghi' and 'rqponmlkj'
[0] a r -- (open)
[1] b q -- (closing)
[2] c p -- (closing)
[3] d -- zip
[4] o -- gap
[5] e -- start of hole (h-2)
[6] n f -- one space (h-1)
[7] m g -- three spaces (hole h)
[8] l h -- one space (h+1)
[9] k -- end of hole (h+2)
[10] i -- gap
[11] j
Saya berharap semuanya masuk akal, jika tidak ditanyakan. Untuk mengantisipasi pertanyaan, Anda mungkin memperhatikan bahwa karakter p
dalam contoh kedua saya ada di substring kedua, namun, muncul di awal barisnya, ini dimaksudkan, Anda harus mengikuti urutan 1-2-1-2- 1-2, mengambil karakter dari setiap setengah pada gilirannya terlepas dari posisinya di output.
Uji Kasus
"fully open zipper", 7, 0 | "fully closed zipper", 0, 0
fullyope reppizn | fullyclos reppizde
|
f r *Note: i particularly like this | f
u e example as it shows the reversing | r
l p of the second half of the string | u
l p causes the words to wrap from top | e
y i left to the bottom and back up | l
o z the right side | p
p n | l
e | p
| y
| i
| c
| z
| l
| d
| o
| e
| s
- Kolom 1: "ritsleting panjang tak terputus yang seharusnya tidak ada pada hoodie yang layak", 24, 0
- Kolom 2: "Lorem ipsum dolor sit amet, consectetur adipiscing elite. Mauris faucibus molestie mi. Aliquam nec fringilla ipsum", 15, 5
:
s e | L m
t i | o u
u d | r s
p o | e p
i o | m i
d h | i a
l t | p l
y n | s l
l e | u i
o c | m g
n e | d n
g d | o i
u y | l r
n n | o f
b a | r c
r n | s
o o | e
k t | i
e s | n t
n i | m a
z x | a m
i e | u
p t | e
p n | q
e | t
d | i
r | ,
l | l c
t | A o
u | . n
h | i
o | s
a | m
h | e e
t | c i
s | t t
| e
| s
| t
| s
| u
| l
| r
| o
| a
| m
| d
| s
| i
| u
| p
| b i
| i s
| c c
| u
| i
| a
| n
| f
| g
| s
| e
| i
| l r
| i u
| t a
| .
| M
EDIT: Menambahkan Kasus Uji
"abcde fgh ij klmnopqr","3","1"
a r
b q
c p
d
o
e
n f
m g
l h
k
i
j
Jawaban:
PHP 7.1,
421 412 218 195 192 191195 byteJalankan dengan
-nr
atau coba online .Mencetak baris baru yang memimpin, tetapi tidak ada yang tertinggal dan satu ruang terdepan di setiap baris.
sumber
<br /> <b>Parse error</b>: syntax error, unexpected ',', expecting ']' in <b>[...][...]</b> on line <b>7</b><br />