Hãy để chúng tôi nói rằng chúng tôi có một bộ chức năng cụ thể trên chuỗi. Các hàm này giống như điền vào chỗ trống hoặc madlib, ngoại trừ việc chúng chỉ lấy một đầu vào và sử dụng nó để điền vào tất cả các khoảng trống của chúng. Ví dụ, chúng ta có thể có một chức năng trông giống như
I went to the ____ store and bought ____ today.
Nếu chúng ta áp dụng hàm này cho chuỗi cheese
, kết quả sẽ là:
I went to the cheese store and bought cheese today.
Chúng ta có thể biểu diễn các hàm này dưới dạng một danh sách các chuỗi không trống, trong đó các khoảng trống chỉ đơn giản là các khoảng trống ở giữa các chuỗi. Ví dụ chức năng của chúng tôi ở trên sẽ là:
["I went to the ", " store and bought ", " today."]
Với đại diện này, chỉ có một đại diện cho mọi chức năng của loại này và chỉ có một chức năng cho mỗi đại diện.
Một điều thực sự gọn gàng là tập hợp các chức năng như vậy được đóng dưới thành phần. Đó là để nói rằng thành phần của hai trong số các chức năng của chúng tôi luôn luôn là một trong những chức năng này. Ví dụ: nếu tôi soạn hàm của chúng tôi ở trên với
["blue ", ""]
(chức năng blue
bổ sung cho đầu vào) Chúng tôi nhận được chức năng:
["I went to the blue ", " store and bought blue ", " today."]
Chúng có thể phức tạp hơn một chút mặc dù. Ví dụ: nếu chúng ta soạn hàm đầu tiên với
["big ", " and ", ""]
Kết quả là
["I went to the big ", " and ", " store and bought big ", "and", " today."]
Bài tập
Nhiệm vụ của bạn là nhận hai hàm như được mô tả dưới dạng danh sách các chuỗi không trống và xuất thành phần của chúng dưới dạng danh sách các chuỗi không trống.
Với mục đích của thách thức này, một danh sách có thể là bất kỳ vùng chứa được đặt hàng nào cho phép trùng lặp và một chuỗi có thể là loại chuỗi gốc, danh sách các ký tự hoặc danh sách các số nguyên.
Đây là mã - câu trả lời golf sẽ được tính bằng byte với ít byte hơn.
Các trường hợp thử nghiệm
["","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"]