(Terinspirasi oleh tantangan ini )
Diberikan dua string input, satu di antaranya persis satu karakter lebih panjang dari yang lain, mengatur string ke dalam seni ASCII seolah-olah mereka adalah dua bagian ritsleting yang hanya setengah ritsleting. Kata yang lebih panjang membentuk bagian bawah ritsleting, dan merupakan karakter pertama dan terakhir dari bagian ritsleting gabungan. Karena paragraf itu sulit dimengerti, lihat beberapa contoh:
zippered
paragraph
z
i
p
p
gerraepdh
a
r
a
p
Perhatikan bagaimana paragraph
(kata yang lebih panjang) membentuk ritsleting bagian bawah, dan g r a p h
bagian merangkum e r e d
bagian dari zippered
, dan bagian z i p p
dan p a r a
bagian diimbangi satu sama lain.
Memasukkan
- Dua string ASCII dalam format apa pun yang nyaman , dengan satu dijamin panjangnya lebih panjang dan yang lainnya tepat satu karakter lebih panjang.
- Tidak ada string yang berisi spasi, tetapi mungkin mengandung nilai ASCII yang dapat dicetak lainnya.
- Anda dapat mengambil input dalam urutan apa pun. Silakan sebutkan dalam kiriman Anda, pesanan input.
Keluaran
Representasi seni ASCII yang dihasilkan dari kata-kata ritsleting, seperti yang dijelaskan di atas, sekali lagi dalam format apa pun yang nyaman.
Aturan
- Leading atau trailing newlines atau whitespace semuanya opsional, asalkan karakter itu sendiri berbaris dengan benar.
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Contohnya
ppcg
tests
p
p
sctgs
e
t
string
strings
s
t
r
iinnggs
r
t
s
one guaranteed to be even in length and the other exactly one character longer.
String yang lebih pendek selalu genapJawaban:
Japt ,
3128 byteUji secara online! Mengambil string yang lebih pendek terlebih dahulu.
Penjelasan
sumber
Arang ,
3331 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Mengambil string yang lebih pendek terlebih dahulu. Sunting: Disimpan 2 byte dengan mengubah deteksi titik tengah. Penjelasan:
Ulangi setiap string secara bergantian.
Ulangi setiap karakter string secara bergantian.
Cetak karakter dan pindahkan kotak ekstra ke kanan.
Untuk bagian pertama dari string, gerakkan juga kursor ke bawah atau ke atas sesuai kebutuhan.
Setelah mencetak string pertama, lompat ke titik awal string kedua, dan ganti string pertama dengan yang kedua, sehingga tercetak untuk loop kedua. (Kode ini berjalan di kedua loop, tetapi yang kedua kali adalah no-op.)
sumber
Pyth , 35 byte
Cobalah online!
sumber
Jelly ,
2726 byte-1 byte terima kasih kepada Erik the Outgolfer (gunakan repeat
¡
,, untuk mengganti if?
,, dan klausa lain yang dilewati¹
)Program lengkap yang mencetak hasilnya dengan spasi putih, sebagaimana diizinkan dalam pertanyaan (atau tautan diad mengembalikan daftar karakter).
Cobalah online!
Bagaimana?
sumber
C¹Ḃ?
->CḂ¡
Python 2 ,
128119 byteCobalah online!
sumber
V ,
473830272625 byteAkhirnya kalahkan jawaban Jelly saat ini \ o /
Mengambil input dengan kata yang lebih panjang di atas
Penjelasan datang, jangan berpikir ada banyak lagi untuk golf.
Cobalah online!
Penjelasan
sumber
V , 79 byte
Cobalah online!
Berikut ini harus dibaca dengan banyak sarkasme dan tanda kutip .
Mengapa saya terus melakukan ini pada diri saya sendiri?
Hexdump:
sumber
Jelly , 28 byte
Cobalah online!
Woo Jelly sebenarnya bersaing dalam tantangan string dan ascii-art ! \Hai/
sumber
Ṗ
tidak akan menambahkan ruang trailing tetapi trailing1
. Dan menghilangkan segala sesuatu yang ada hubungannya dengan spasi menghilangkan susunan huruf-huruf. Secara umum, algoritma ini menggunakan pengindeksan sehingga surat-surat mendapatkan indeks tertentu dalam kolom dan sisanya diisi dengan spasi, jadi saya pikir ini tidak bisa di-golf lagi. Setidaknya aku senang bahwa Jelly tidak dikalahkan oleh CJam. ;)05AB1E ,
2623 byteCobalah online!
Penjelasan
Dengan contoh input =
ppcg, tests
sumber
C # (.NET Core) , 163 byte
Cobalah online!
Mungkin banyak bermain golf di sini, tapi ini adalah upaya awal non-LINQ. Fungsi Lambda yang mengambil kata yang lebih panjang terlebih dahulu, dan mengembalikan string dengan ouput.
sumber
l=>s=>
) yaituFunc<input1, Func<input2, output>>
.Java 8, 216 byte
Lambda kari: mengambil
String
dan mengembalikan lambda dariString
keString
. Parameter ke lambda luar adalah string yang lebih pendek.Tidak dapat mengindeks ke
String
dalam dengan sintaks array adalah ... disayangkan.Lambda yang tidak tersentuh
Penjelasan
l
adalah panjang dari input yang lebih pendek dani
merupakan indeks multiguna, diinisialisasi untuk merujuk pada karakter pertama dari bagian kedua dari input yang lebih pendek.o
mengakumulasi hasilnya,p
akhirnya menyimpan ruang untuk pelapis, dann
merupakan alias untuk"\n"
.Loop pertama interleaves bagian kedua dari dua string (tidak termasuk karakter terakhir dari input yang lebih panjang) dan membangun
p
ke jumlah padding yang tepat untuk garis tengah.Baris berikutnya melengkapi garis tengah output.
Saya ingin meminta maaf kepada James Gosling untuk putaran kedua. Itu menambahkan garis di atas dan di bawah garis tengah dari dalam ke luar. Memasuki loop,
i
adalahl - 1
, jadi satu karakter padding ditambahkan bersama dengan karakter terakhir dari bagian pertama dari string yang lebih pendek.i
dikurangi sehingga padding berikutnya (ditambahkan ke hasil) adalah karakter yang lebih pendek. Dengan pembagian integer, karakter posisi yang sama dari string yang lebih panjang ditambahkan. Ini berulang, dan hasil yang sudah selesai dikembalikan.Hal yang keren
Saluran 13 dulu
karena tanpa string kosong,
+
menambahkan nilai karakter bersama dan menambahkan string numerik. Dengan memperluas penugasan majemuk, gabungano
dant.charAt(i)
dievaluasi terlebih dahulu, yang menghasilkan hasil yang diinginkan tanpa perlu string kosong, menghemat 2 byte. Ini adalah pertama kalinya saya melihat tugas majemuk berperilaku berbeda dari ekspansi.sumber
Javascript (ES6),
140 137133 byteCukup yakin ini bisa bermain golf lebih lanjut
sumber
`<newline>`+` `
bisa digabungkan`<newline> `
? (Saya tidak tahu JS).Mathematica, 174 byte
Memasukkan
sumber
TXR Lisp , 126 byte
sumber
PHP,
149129 byteJalankan dengan
-nr
atau coba online .sumber
Perl 5 , 163 byte
Cobalah online!
Mengambil string yang lebih panjang terlebih dahulu.
sumber