字符串中字符的所有组合(递归方式)
Posted ZDF0414
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串中字符的所有组合(递归方式)相关的知识,希望对你有一定的参考价值。
思路:根据递归的特性,确定产生的字符组合顺序
例:字符串“abc”的字符组合
产生的顺序为: a、b、c、ab、ac、bc、abc
void Print(vector<char>& v)
for (int i = 0; i<v.size(); i++)
cout << v[i];
cout << endl;
void _Combination(char* str, int len, vector<char>&v)
if (!str || (*str == '\\0'&&len > 0))
return;
if (len == 0)
Print(v);
return;
v.push_back(*str);
_Combination(str + 1, len - 1, v);
v.pop_back();
_Combination(str + 1, len, v);
void ComBination(char* str)
vector<char>v;
int len = strlen(str);
for (int i = 1; i <= len; i++)//组合字符的长度
_Combination(str, i, v);
以上是关于字符串中字符的所有组合(递归方式)的主要内容,如果未能解决你的问题,请参考以下文章