输入一个字符串,输出该字符串中字符的所有组合
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
代码
假设给定一字符串“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 << " "; } }
相关文章推荐
- Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)
- 输入一个字符串,输出该字符串中字符的所有组合
- 输入一个字符串,输出该字符串中字符的所有组合。(腾讯2014笔试附加题)
- Java练习题-输入一个字符串,输出该字符串中字符的所有组合
- 【编程题】输入一个字符串,输出该字符串中相邻字符的所有组合。
- 输入一个字符串,输出该字符串中字符的所有组合 C#【总结】
- 题目:输入一个字符串,输出该字符串中字符的所有组合
- 题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。
- Java练习题-输入一个字符串,输出该字符串中字符的所有组合(二)
- 输入一个字符串,输出该字符串中字符的所有组合
- 输入一个字符串,输出该字符串中字符的所有组合
- 输入一个字符串,要求输出字符串中字符所有的排列,例如输入"abc",得到"abc","acb","bca","bac","cab","cba"
- 递归问题之一:给定一字符串,输出字符串中所有字符子串的各种组合形式,长度为一个字符到字符串的长度,忽略排序
- C语言输入一个字符串,输出字符串的所有组合
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
- C语言 字符串 编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
- 编写函数fun(char *s),其功能是:把字符串中所有字符前移一个位置,串中的第1个字符移到最后。 例如,若输入字符串为:ABC123xyz ,则应输出字符串: BC123xyzA 。
- 读取一个字符串,并输出它里面字符的所有组合。
- C#实现输入一个字符串输出该字符串字符的所有排列方式
- 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。