这是绿盟考试的一道题,意思是让我们从26个字母中选取n个字母,组成一个子串
比如,选取4个,就是abcd,abce,abcf,abcg······等
思路采取dfs深搜
#include <iostream>
using namespace std;
char alphabet[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char temp[26];
void Print(int n)
{
for(int i=0;i<n;i++)
{
cout<<temp[i]<<" ";
}
cout<<endl;
return;
}
void Solve(int index,int cur,int n)
{
if(index==n)
{
Print(n);
return;
}
int i;
for(i=cur;i<26;i++)
{
temp[index]=alphabet[i];
Solve(index+1,i+1,n);
}
}
void Permutation(int n)
{
Solve(0,0,n);
}
int main()
{
Permutation(26);
return 0;
}