POJ1256--全排列

来源:互联网 发布:pxe网络启动winpe 编辑:程序博客网 时间:2024/05/21 05:42

题目大意:输入字符串,按字典序输出所有排列。注意(A>a>B>b..)。使用头文件algorithm里面的sort(iterator start, iterator end ,cmp),next_permutation(iterator start, iterator end ,cmp)方法,该方法按cmp方法的比较输出全排列。

#include<iostream>#include<algorithm>#include<cstring>using namespace std;//将字符转为浮点数便于比较,因为同一个字母大小写在一起,所以小写字母-31.5bool cmp(char a, char b){    double a1 = a;    double b1 = b;    if (a1 >= 97)        a1 = a1 - 31.5;    if (b1 >= 97)        b1 = b1 - 31.5;    return a1 < b1;}int main(){    int case1;    cin >> case1;    while (case1--){        char a[1000];        cin >> a;        int len = strlen(a);        sort(a, a + len, cmp);        do{            cout << a << endl;        } while (next_permutation(a, a + len, cmp));    }}
0 0
原创粉丝点击