gpt4 book ai didi

算法 - 组合和排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:31 25 4
gpt4 key购买 nike

一个 hwk 问题,显然也是一个常见的面试问题,我遇到了麻烦:

"编写一个算法(伪代码)打印出一组 n 个元素的三个元素的所有子集。这个集合的元素存储在一个列表中,该列表是算法的输入”

例如,如果 S = {1,2,3,4},算法将打印出这四种组合:

123124134234

任何人都可以提供他们的想法/解决方案吗?

最佳答案

递归地:

def subset (prefix, list, count):
if count is 0:
print prefix
return
for each element in list:
subset (prefix & element, list beyond element, count - 1)

subset ("", {1,2,3,4}, 3)

Python 概念证明:

def subset (prefix, list, count):
if count is 0:
print prefix
return
for i in range (len(list)):
subset ("%s%s"%(prefix,list[i]), list[i+1:], count - 1)

subset ("", "1234", 3)

对于输入字符串的各种值(subset 的第二个参数)输出:

123456   12345   1234   123   12
------ ----- ---- --- --
123 123 123 123
124 124 124
125 125 134
126 134 234
134 135
135 145
136 234
145 235
146 245
156 345
234
235
236
245
246
256
345
346
356
456

关于算法 - 组合和排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com