Katakanlah kita memiliki seperangkat fungsi khusus pada string. Fungsi-fungsi ini seperti mengisi kekosongan atau madlibs, kecuali bahwa mereka hanya mengambil satu input dan menggunakannya untuk mengisi semua kekosongannya. Misalnya kita mungkin memiliki fungsi yang mirip
I went to the ____ store and bought ____ today.
Jika kita menerapkan fungsi ini ke string cheese
hasilnya adalah:
I went to the cheese store and bought cheese today.
Kita dapat merepresentasikan fungsi-fungsi ini sebagai daftar string yang tidak kosong, di mana yang kosong hanyalah celah di antara string. Misalnya fungsi kita di atas adalah:
["I went to the ", " store and bought ", " today."]
Dengan representasi ini, hanya ada satu representasi untuk setiap fungsi semacam ini dan hanya satu fungsi untuk setiap representasi.
Suatu hal yang sangat rapi adalah bahwa himpunan fungsi tersebut ditutup di bawah komposisi. Artinya komposisi dua fungsi kita selalu merupakan salah satu dari fungsi ini. Sebagai contoh jika saya menyusun fungsi kami di atas dengan
["blue ", ""]
(fungsi yang bergantung blue
pada input) Kami mendapatkan fungsi:
["I went to the blue ", " store and bought blue ", " today."]
Ini bisa menjadi sedikit lebih rumit. Misalnya jika kita membuat fungsi pertama dengan
["big ", " and ", ""]
Hasilnya adalah
["I went to the big ", " and ", " store and bought big ", "and", " today."]
Tugas
Tugas Anda adalah untuk mengambil dua fungsi seperti yang dijelaskan sebagai daftar string yang tidak kosong dan menampilkan komposisi mereka sebagai daftar string yang tidak kosong.
Untuk tujuan tantangan ini daftar dapat berupa wadah yang dipesan yang memungkinkan duplikat dan string dapat berupa tipe string asli, daftar karakter atau daftar bilangan bulat.
Ini adalah kode-golf jawaban akan dicetak dalam byte dengan lebih sedikit byte yang lebih baik.
Uji kasus
["","xy"] ["ab",""] -> ["ab","xy"]
["x","y","z"] ["a","b"] -> ["xa","bya","bz"]
["xy"] ["ab"] -> ["xy"]
["","",""] ["a",""] -> ["a","a",""]
["x",""] ["","",""] -> ["x","",""]
["x","y","z"] ["a","b","c"] -> ["xa","b","cya","b","cz"]
["x","x","x"] ["a"] -> ["xaxax"]
["w","x","y","z"] ["ab","cd","e"] -> ["wab","cd","exab","cd","eyab","cd","ez"]