项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
对于一个字符数组,例如[“a”,“b”,“c”],求其全组合形式。结果为[‘a’, ‘b’, ‘ab’, ‘c’, ‘ac’, ‘bc’, ‘abc’]。
本博主被问到过这么一个问题。整理了一下解题思路:
结果集里,先将’a’放进来,然后再将’b’添进来,并且将’b’跟结果集中所有已存在的组合相加,以此类推。
def get_arranges():
raw_list = ["a","b","c"]
ret_list = []
for term in raw_list: #对所有关键字循环
tmp_list = []
tmp_list.append(term)
for each in ret_list: #tmp_list保存每次的相加结果
tmp_term = each + term
tmp_list.append(tmp_term)
ret_list.extend(tmp_list) #结果集扩展
print ret_list
get_arranges()
代码运行结果:
['a', 'b', 'ab', 'c', 'ac', 'bc', 'abc']