任何想法为组合制作最佳代码:
用这个:
letters := []string{"a", "b", "c", "d"}
要:a ab ac ad abc abd b bc bcd
等......
问候和感谢
答案 0 :(得分:2)
您正在寻找Powerset:
一种方法是:
从一个带有一个空元素的slice
开始,让我们称之为结果:
[[]]
保留上一个切片,并创建一个新切片,其中第一个元素a
将数据结构添加到原始切片中的每个元素。
[[]]
< - old; [[a]]
< - new
合并他们
[[], [a]]
对第二个元素b
执行相同的操作:
[[], [a]]
< - old; [[b], [ab]]
< - new
=> [[], [a], [b], [ab]]
代表c
:
[[], [a], [b], [ab]]
< - old; [[c], [ac], [bc], [abc]]
< - new
=> [[], [a], [b], [ab], [c], [ac], [bc], [abc]]
依旧......