python实现给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果!

题目描述给定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
最终,整体代码包括测试结果如图所示:

 

 

 

posted @ 2022-08-25 23:14  99号的格调  阅读(812)  评论(0编辑  收藏  举报