ให้เราบอกว่าเรามีชุดของฟังก์ชั่นเฉพาะเกี่ยวกับสตริง ฟังก์ชั่นเหล่านี้มีลักษณะเหมือนเติมในช่องว่างหรือ madlib ยกเว้นว่าพวกเขาจะใช้เพียงหนึ่งอินพุตและใช้เพื่อเติมลงในช่องว่างทั้งหมดของพวกเขา ตัวอย่างเช่นเราอาจมีฟังก์ชั่นที่ดูเหมือน
I went to the ____ store and bought ____ today.
หากเราใช้ฟังก์ชันนี้กับสตริงcheese
ผลลัพธ์จะเป็น:
I went to the cheese store and bought cheese today.
เราสามารถแสดงฟังก์ชันเหล่านี้เป็นรายการสตริงที่ไม่ว่างโดยที่ช่องว่างเป็นเพียงช่องว่างระหว่างสตริง ตัวอย่างฟังก์ชั่นของเราด้านบนจะเป็น:
["I went to the ", " store and bought ", " today."]
ด้วยการแทนค่านี้มีเพียงหนึ่งการแทนสำหรับทุก ๆ ฟังก์ชันของการเรียงลำดับนี้และเพียงหนึ่งฟังก์ชันสำหรับแต่ละการแทนเท่านั้น
สิ่งที่เรียบร้อยจริงๆคือชุดของฟังก์ชั่นดังกล่าวปิดภายใต้องค์ประกอบ กล่าวคือการจัดองค์ประกอบของฟังก์ชั่นสองอย่างของเราเป็นหน้าที่หนึ่งของฟังก์ชันเหล่านี้เสมอ เช่นถ้าฉันเขียนฟังก์ชันของเราด้านบนด้วย
["blue ", ""]
(ฟังก์ชั่นที่blue
เพิ่มเข้าสู่อินพุต) เรารับฟังก์ชั่น:
["I went to the blue ", " store and bought blue ", " today."]
สิ่งเหล่านี้จะซับซ้อนกว่านี้เล็กน้อย เช่นถ้าเราเขียนฟังก์ชันแรกด้วย
["big ", " and ", ""]
ผลที่ได้คือ
["I went to the big ", " and ", " store and bought big ", "and", " today."]
งาน
งานของคุณคือการรับฟังก์ชั่นสองอย่างตามที่อธิบายไว้ในรายการสตริงที่ไม่ว่างเปล่าและแสดงองค์ประกอบเป็นสตริงที่ไม่ว่างเปล่า
สำหรับจุดประสงค์ของการท้าทายรายการสามารถเป็นคอนเทนเนอร์ที่เรียงลำดับซึ่งอนุญาตการทำซ้ำและสตริงอาจเป็นชนิดสตริงดั้งเดิมรายการของอักขระหรือรายการจำนวนเต็ม
นี่คือคำตอบของcode-golfจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยกว่าจะดีกว่า
กรณีทดสอบ
["","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"]