Dize üzerinde belirli bir işlev grubumuz olduğunu varsayalım. Bu işlevler, boşlukları veya madlibs'leri doldurmaya benzer, tek bir girdi almaları ve tüm boşluklarını doldurmak için kullanmaları dışında. Mesela benzeyen bir fonksiyonumuz olabilir.
I went to the ____ store and bought ____ today.
Bu işlevi dizeye uygularsak cheese
sonuç şöyle olur:
I went to the cheese store and bought cheese today.
Bu işlevleri, boşlukların basitçe dizeler arasındaki boşluklar olduğu boş olmayan bir dizeler listesi olarak gösterebiliriz. Örneğin yukarıdaki fonksiyonumuz:
["I went to the ", " store and bought ", " today."]
Bu gösterimde, bu türdeki her işlev için yalnızca bir temsil ve her gösterim için yalnızca bir işlev vardır.
Gerçekten temiz bir şey, bu tür fonksiyonların setinin kompozisyon altında kapalı olmasıdır. Yani fonksiyonlarımızdan ikisinin kompozisyonu her zaman bu fonksiyonlardan bir diğeri. Örneğin, yukarıdaki işlevimizi
["blue ", ""]
( blue
girişin önüne geçen işlev) İşlevi alırız :
["I went to the blue ", " store and bought blue ", " today."]
Bunlar biraz daha karmaşık olabilir. Örneğin, ilk işlevi
["big ", " and ", ""]
Sonuç
["I went to the big ", " and ", " store and bought big ", "and", " today."]
Görev
Göreviniz boş olmayan dizeler listesi olarak açıklandığı gibi iki işlev almak ve bileşimlerini boş olmayan dizeler listesi olarak çıkarmaktır.
Bu zorluğun amacı için bir liste, kopyalara izin veren herhangi bir sıralı kap olabilir ve bir dize yerel bir dize türü, bir karakter listesi veya bir tamsayı listesi olabilir.
Bu kod golf cevapları daha az bayt daha iyi ile bayt olarak puanlanır olduğunu.
Test senaryoları
["","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"]