题目描述:给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果!
样例:
input:[["a","b","cd",["de"],["e","f"]]
output:["adee","adef","bdee","bdef","cddee","cddef"]
解决思路:这道题给我们的一个限制就是,单一循环解决不了该问题,容易发生索引越界异常!
针对题目描述,我们发现,最终的输出结果是第一个列表与其k-1个列表组合后的结果,如果应用循环来解决
我们应该将循环次数设定为k-1次,所以我们可以先定义一个针对两个字符列表组合的函数!
代码如下:
def Combine(list1,list2): list_empty = [] l1 = len(list1) l2 = len(list2) for i in range(0,l1): for j in range(0,l2): list_empty.append(list1[i] + list2[j]) return list_empty 然后,在主函数里,我的想法是,将每一次两个列表组合的结果与下一个列表进行组合,也就是调用之前定义的函数, 代码如下:
def fun(input_list, output_list = []): for i in range(0,len(input_list)-1): output_list = Combine(input_list[i],input_list[i+1]) input_list[i+1] = output_list return output_list 最终,整体代码包括测试结果如图所示: