求数组合组的算法

时间:2015-02-19 10:03:43

标签: algorithm combinations

我目前停留在我正在处理的应用程序的一部分上。我不想复制所有代码并将其粘贴到此处,但让我直接指向一个简单的例子:

假设我有一个字符串" abcdefg",我试图找到一种能够在不交换字符的情况下获得所有可能分组的算法,例如:

abcdeg
a, b, c, d, e, f, g
ab, c, d, e, f, g
..
..
abc, def, g
..
ab, cd, efg
..
and so on...

我认为这个例子非常重要。任何人都可以提供伪代码吗?我也理解Java,C和C ++,所以也许这些语言的代码片段更好,但如果不是伪代码就好了,我会尝试实现它。提前谢谢。

1 个答案:

答案 0 :(得分:4)

它非常简单。删掉第一个字母并将0或1与其余字母相关联。 1表示在字母前面放置逗号。 0意味着不要。

E.g。 001100对应于abc,d,efg。

我使用的符号是一个简单的数字地图,从零开始以二进制表示。

所以有三件事,(i)计算整数,(ii)转换为二进制,(iii)使用该二进制作为逗号定位规则。

停止条件很明显。