时间限制:
5 Sec
内存限制:
128 MB
题目描述
给你一个字符串,按字典序从小到大输出这个字符串的全排列
输入
一个由小写字母组成的长度小于等于8的不含重复字符的字符串
输出
按字典序从小到大输出这个字符串的全排列
样例输入
abc
样例输出
abc
acb
bac
bca
cab
cba
对于这个按字典序全排列的话,STL中有个十分方便的函数 next_permutation() 与 pre_permutation()
这里我们向按字典序排列,首先我们需要把这个原来输入的东西排列一下(可以尝试一下把 sort(a,a+len)删掉,会发现这个序列之前的排列就没有了,所以一定要自己手动先调一下顺序)然后就是那个方便的函数的作用了,他会把这个序列之后的序列,重新组合,并且是按ascII来的对于这个题来说可以说是很方便了。
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main (){
char a[8];
cin>>a;
int len=strlen (a);
sort(a,a+len);
do{
cout<<a<<endl;
}while(next_permutation (a,a+len));
return 0;
}