这里的数据由用户输入,默认全都不重复…
#include<bits/stdc++.h>
using namespace std;
char s[1001];
//k m 含义看图
void perm(int k,int m)
{
if(k==m)//结束条件 输出结果
{
for(int i=0;i<=m;i++)
cout<<s[i]<<" ";
cout<<endl;
}
else
{
for(int j=k;j<=m;j++)
{
swap(s[j],s[k]);
perm(k+1,m);
swap(s[j],s[k]);//防止出现重复结果
}
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>s[i];
perm(0,n-1);
}
测试用例: