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;
}



目录
相关文章
|
3月前
|
C++
【洛谷 P1706】全排列问题 题解(全排列)
该问题要求按字典序输出从1到n的所有不重复排列。输入为整数n,输出为每行一个的数字序列,每个数字占5个宽度。样例输入3,输出6行全排列。代码使用C++,通过`next_permutation`函数生成所有排列。注意n的范围是1到9。
18 0
|
3月前
|
物联网
【洛谷 P1464】Function 题解(递归+记忆化搜索)
该题目定义了一个递归函数$w(a,b,c)$,具有特定的终止条件和递归规则。当$a, b, c$任一值小于等于0或大于20时,函数有特殊返回值。否则,根据$a, b, c$的相对大小关系应用不同的递归计算。给定输入是一系列的三元组$(a, b, c)$,以$-1,-1,-1$结束。程序使用记忆化搜索优化递归调用,避免重复计算。样例输入输出展示了如何计算$w(1, 1, 1)$和$w(2, 2, 2)$。
26 0
|
10月前
LeetCode题:70爬楼梯,126斐波那契数
LeetCode题:70爬楼梯,126斐波那契数
49 0
递归小结(基础题目斐波那契,汉诺塔等)(上)
递归小结(基础题目斐波那契,汉诺塔等)
AcWing 820. 递归求斐波那契数列
AcWing 820. 递归求斐波那契数列
63 0
AcWing 820. 递归求斐波那契数列
AcWing 819. 递归求阶乘
AcWing 819. 递归求阶乘
73 0
AcWing 819. 递归求阶乘
AcWing 717. 简单斐波那契
AcWing 717. 简单斐波那契
95 0
AcWing 717. 简单斐波那契
|
机器学习/深度学习 人工智能 算法
『递归』汉诺塔和全排列
使用递归编写一个程序实现汉诺塔问题,要求在输入圆盘数量之后,输出圆盘的移动步骤,输出格式示例如下: 第1步:1号盘从A柱移至B柱第2步:2号盘从A柱移至C柱
214 0