ストリングコンビネーション解法
523 ワード
タイトル:文字列を入力し、その文字列のすべての組合せを出力します.
例えば、abcが入力されると、その組み合わせはa、b、c、ab、ac、bc、abcである.
ここでは新しい考え方を提供します.アルゴリズムの考え方は,文字列配列に文字があるか否かを整数のバイナリで表し,1はその文字があるか,0はないかを表す.
コードは次のとおりです.
例えば、abcが入力されると、その組み合わせはa、b、c、ab、ac、bc、abcである.
ここでは新しい考え方を提供します.アルゴリズムの考え方は,文字列配列に文字があるか否かを整数のバイナリで表し,1はその文字があるか,0はないかを表す.
コードは次のとおりです.
char str[] = "abcd";
int length = strlen(str);
int k = (1<<length) - 1 ;
while (k)
{
int j = k;
int count = 0;
while(j>0)
{
int temp = j&1;
count++;
if (temp>0)
{
cout<<str[length-count];
}
j = j>>1;
}
cout<<endl;
k--;
}