问题描述
我看到的题解一般都是非递归的,写一个递归的
#include<bits/stdc++.h>
using namespace std;
const int N=35;
char a[N],b[N];
int n,st;
int used[N];
void dfs(int u,int st)
{
if(u==3+1)
{
for(int i=1;i<=3;i++)
cout<<b[i];
cout<<endl;
return ;
}
for(int i=st;i<=n;i++)
{
b[u]=a[i];
dfs(u+1,i+1);//这一层是从st ,下一层要从i+1开始
b[u]=0;
}
}
int main()
{
cin>>a+1;
n=strlen(a+1);
dfs(1,1);
return 0;
}