POJ 1256 全排列函数

简介:

题目要求是按照给出的字母顺序进行全排列并非是ASCII的顺序 可以用STL的全排列函数 这道题可以对全排列函数有更深一步的理解 那就是构造cmp函数等同sort一样 给出明确的大小顺序就可以比较

#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int cmp(char a,char b)
{
    if(a>='a'&&b>='a')
    return a<b;
    if(a<='Z'&&b<='Z')
    return a<b;
    if(a>='a'&&b<='Z')
    return a<b+32;
    if(a<='Z'&&b>='a')
    return a+32<=b;
}
int main()
{
    char c[15];int len,t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",c);
        len=strlen(c);
        sort(c,c+len,cmp);
        do
        puts(c);
        while(next_permutation(c,c+len,cmp));
    }
    return 0;
}



目录
相关文章
|
6月前
|
Java
leetcode-509:斐波那契数
leetcode-509:斐波那契数
479 0
|
测试技术
代码随想录Day24 LeetCode T491 递增子序列 LeetCode T46 全排列 LrrtCode T47 全排列II
代码随想录Day24 LeetCode T491 递增子序列 LeetCode T46 全排列 LrrtCode T47 全排列II
38 1
|
5月前
|
C++
【洛谷 P1706】全排列问题 题解(全排列)
该问题要求按字典序输出从1到n的所有不重复排列。输入为整数n,输出为每行一个的数字序列,每个数字占5个宽度。样例输入3,输出6行全排列。代码使用C++,通过`next_permutation`函数生成所有排列。注意n的范围是1到9。
39 0
|
11月前
leetcode 509 斐波那契数
今天重新看了下动态规划, 它和递归的区别就是,它是自下而上的。 还了解到状态压缩 如果我们发现每次状态转移只需要 DP table 中的一部分,那么可以尝试用状态压缩来缩小 DP table 的大小,只记录必要的数据 于是就刷了这道简答题,用到了状态压缩
40 0
LeetCode题:70爬楼梯,126斐波那契数
LeetCode题:70爬楼梯,126斐波那契数
55 0
|
人工智能
归并排序求逆序对 acwing例题代码
归并排序求逆序对 acwing例题代码
|
算法 Go Python
LeetCode46:全排列(八皇后)
LeetCode46:全排列(八皇后)
LeetCode46:全排列(八皇后)
|
机器学习/深度学习 算法
【递归与递推 4】AcWing95. 费解的开关 、AcWing 93. 递归实现组合型枚举、AcWing 1209. 带分数、AcWing 1208. 翻硬币
【递归与递推 4】AcWing95. 费解的开关 、AcWing 93. 递归实现组合型枚举、AcWing 1209. 带分数、AcWing 1208. 翻硬币
158 0