在本节中,我们将看到如何生成任意长度的所有可能字符串,这将采用每个字符的组合来生成字符串。例如,如果字符串是ABC,则它将生成 - {A,B,C,AB,BA,BC,CB,CA,AC,ABC,ACB,BAC,BCA,CAB,CBA}
让我们看一个例子来理解。
算法
printAllString(str)
Begin
n := length of the string str
count is 2^n – 1
for each number 0 to count, do
sub_str := empty string
for j in range 0 to n, do
if jth bit of the counter is set, then
concatenate jth character of str with sub_str
end if
done
repeat:
print sub_string
until next permutation of sub_string is not completed
done
End
登录后复制
示例
#include
#include
#include
using namespace std;
void printAllString(string str) {
int n = str.size();
unsigned int count = pow(2, n);
for (int counter = 1; counter