给定一个全由小写字母构成的字符串,求它的全排列,按照字典序从小到大输出。
输入格式:
一行,一个字符串,长度不大于8。
输出格式:
输出所有全排列,每行一种排列形式,字典序从小到大。
输入样例:
在这里给出一组输入。例如:
abc
输出样例:
在这里给出相应的输出。例如:
abc
acb
bac
bca
cab
cba
这道题可以使用C++所给的函数STL里的全排函数——next_permutation()
代码如下:
#include <iostream>
#include <algorithm>
#include<string.h>
using namespace std;
int main()
{
char num[9];
cin>>num;
int n = strlen(num);
// cout<<n<<endl;
sort(num,num+n);
do
{
for(int i=0;i<n;i++)
cout<<num[i]<<" ";
cout<<endl;
}while(next_permutation(num,num+n));
return 0;
}
刚开始一直显示答案错误,找不出哪里的错误,后来明白题目的字典序的意思,在输入的字符串先要按字典序排列,在调用next_permutation()才可以,所以在前面加上c++里提供的函数==sort(num,num+n);==就可以了!