题目描述
输出全排列
可以利用stl中的next_permutation或者手写排序
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char c[105];
int l;
int get(){
int i=l-1;
while(i>0&&c[i-1]>=c[i])
{
i--;
}
if(!i)
return 0;
int mp=i;
for(int j=i+1;j<l;j++)
{
if(c[j]<=c[i-1]) continue;
if(c[j]<c[mp]) mp=j;
}
swap(c[mp],c[i-1]);
sort(c+i,c+l);
return 1;
}
int main(){
int t;
cin>>t;
while(t--){
cin>>c;
l=strlen(c);
sort(c,c+l);
cout<<c<<endl;
while(get()){
cout<<c<<endl;
}
cout<<endl;
}
}
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char c[105];
int l;
int main(){
int t;
cin>>t;
while(t--){
cin>>c;
l=strlen(c);
sort(c,c+l);
cout<<c<<endl;
while(next_permutation(c,c+l)){
cout<<c<<endl;
}
cout<<endl;
}
}