- /*字符串的全组合*/
- #include <stdio.h>
- #include <vector>
- using namespace std;
- vector<char> stk;
- void print_stk(vector<char> & v){
- vector<char>::iterator ii;
- for(ii = v.begin(); ii != v.end(); ++ii){
- printf("%c", *ii);
- }
- printf("/n");
- }
- void all_combine(char a[], int size, int count){
- if(count == 0){
- print_stk(stk);
- return;
- }
- for(int i = 0; i <= size - count; i++){
- stk.push_back(a[i]);
- all_combine(a + i + 1, size - i - 1, count - 1);//size - i - 1是关键点
- stk.pop_back();
- }
- }
- int main_all_combine(){
- char s[] = {"abcde"};
- for(int i = 1; i <= 5; i++){
- all_combine(s, 5, i);
- }
- return 0;
- }
字符串全组合-递归法
最新推荐文章于 2020-06-19 16:47:19 发布