组合

来源:互联网 发布:低价域名注册 编辑:程序博客网 时间:2024/04/29 20:19
#include <iostream>#include <vector>  using namespace std;      //函数功能 : 从一个字符串中选m个元素//函数参数 : pStr为字符串, m为选的元素个数, result为选中的//返回值 :   无void Combination_m(char *pStr, int m, vector<char> &result){if(pStr == NULL || (*pStr == '\0'&& m != 0))return;if(m == 0) //递归终止条件{for(unsigned i = 0; i < result.size(); i++)cout<<result[i];cout<<endl;return;}//选择这个元素result.push_back(*pStr);Combination_m(pStr + 1, m - 1, result);result.pop_back();//不选择这个元素Combination_m(pStr + 1, m, result);}//函数功能 : 求一个字符串的组合//函数参数 : pStr为字符串//返回值 :   无void Combination(char *pStr){if(pStr == NULL || *pStr == '\0')return;int number = strlen(pStr);for(int i = 1; i <= number; i++){vector<char> result;Combination_m(pStr, i, result);}}  int main()  {      Combination("abcd");    return 0;  }