हमें बताएं कि स्ट्रिंग्स पर हमारे पास विशेष रूप से सेट कार्य हैं। ये फ़ंक्शंस रिक्त या मैडलिब में भरने की तरह हैं, सिवाय इसके कि वे केवल एक इनपुट लेते हैं और उपयोग करते हैं कि उनके सभी रिक्त स्थान को भरने के लिए। उदाहरण के लिए हमारे पास एक फ़ंक्शन हो सकता है जो दिखता है
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."]
कार्य
आपका कार्य स्ट्रिंग्स की गैर-रिक्त सूची के रूप में वर्णित दो कार्यों को लेना है और उनकी रचना को स्ट्रिंग की गैर-रिक्त सूची के रूप में आउटपुट करना है।
इस चुनौती के उद्देश्य के लिए एक सूची किसी भी आदेशित कंटेनर हो सकती है जो डुप्लिकेट की अनुमति देता है और एक स्ट्रिंग एक मूल स्ट्रिंग प्रकार, वर्णों की सूची या पूर्णांक की सूची हो सकती है।
यह कोड-गोल्फ उत्तर है बाइट्स में कम बाइट के साथ बेहतर स्कोर किया जाएगा।
परीक्षण के मामलों
["","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"]