您的位置:首页 > 其它

输入一个字符串,输出该字符串中字符的所有组合

2016-10-11 19:05 363 查看
分析

假设给定一字符串“abc”,则其所有组合方式为: a, b, ab, c, ac, bc, abc共七种(2^n - 1)种组合方式,可以利用位操作来简化题目,即给所有输出方式进行编号(1 ~ 2^n-1),对于本题目来说即:

0 0 1 --> a

0 1 0 --> b

0 1 1 --> ab

1 0 0 --> c

1 0 1 --> ac

1 1 0 --> bc

1 1 1 --> abc

代码

void printAllCombination(string s)
{
auto len = s.size();
auto comb_count = 1 << len;

for(int i = 1; i < comb_count; ++i)
{
for(int j = 0; j < len; ++j)
if(i & (1 << j)) cout << s[j];
cout << " ";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐