如何查找字符串的所有排列?

时间:2016-11-26 15:56:17

标签: c++ c algorithm

char ary[10] = "AAABB";

有6种!/(3!* 2!)可能的方式来安排它们。我如何找到它们?

1 个答案:

答案 0 :(得分:1)

首先,有5个! /(3!* 2!)= 10种可能的方式,而不是6种! /(3!* 2!)。但我认为这是你的错字。

对于此特定字符串“AAABB”,您可以执行以下操作:

取走“BB”,并将“A”视为“B”插槽的分隔符。设_(下划线)是我们可以插入“B”的插槽。

_A_A_A _

首先,将“BB”视为两个分开的字符,并将它们插入。我们可以将它们插入插槽1和1中。 2(“BABAA”),1& 3(“BAABA”),1& 4,2& 3,2和& 4,3& 4.(共6个)

然后,将“BB”视为一个,然后将其插入。我们可以将其插入插槽1(“BBAAA”),2(“ABBAA”),3,4中。(总共4个)

迭代所有10种可能的方式。