给定一个全由小写字母构成的字符串,求它的全排列,按照字典序从小到大输出。
输入格式:
一行,一个字符串,长度不大于8。
输出格式:
输出所有全排列,每行一种排列形式,字典序从小到大。
输入样例:
在这里给出一组输入。例如:
abc
结尾无空行
输出样例:
在这里给出相应的输出。例如:
abc
acb
bac
bca
cab
cba
结尾无空行
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
void sort(char a[],int left,int right){
int i,j,t;
char temp;
if(left>right){
return ;
}
temp = a[left];
i = left;
j = right;
while(i!=j){
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
if(i<j){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[left] = a[i];
a[i] = temp;
sort(a,left,i-1);
sort(a,i+1,right);
}
int main(){
char s[10];
scanf("%s",&s);
sort(s,0,strlen(s)-1);
do{
printf("%s\n",s);
}while(next_permutation(s,s+strlen(s)));
system("pause");
}