问题:

  有一个只含大小写字母的字符串,给出所有该字符串的排列,以字典顺序输出。其中 'A'<'a'<'B'<'b'<...<'Z'<'z'。

方法:

  只需调用C++ STL中 next_permutation() 和 sort() 函数,重点在于编写自定义的compare() 函数。

hint:(compare 函数的编写方法)

bool cmp(int a, int b){a = ....;                      // 处理ab = ....;                      // 处理breturn (condition);    // 若要增序排列,只需将condition填补为所有可能使a小于b的情况
}

代码:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;bool cmp(char a, char b){if(a <= 'Z' && b <= 'Z')return a < b;else if(a >= 'a' && b >= 'a')return a < b;else if(a >= 'a' && b <= 'Z')return a - 'a' < b - 'A';else if(b >= 'a' && a <= 'Z')return a - 'A' <= b - 'a';
}int main(){string input;int N;cin >> N;while(N--){cin >> input;sort(input.begin(), input.end(), cmp);do{cout << input << endl;}while(next_permutation(input.begin(), input.end(), cmp));}
}

 

转载于:https://www.cnblogs.com/dogspeek/archive/2012/06/24/2559971.html

POJ1256 (C++ compare函数)相关推荐

  1. boost heap - d_ary_heap 的自定义compare函数用法

    heap 最大堆 最小堆 最大堆 根节点最大. 最小堆 根节点最小. boost中默认是最大堆,因此最小堆需要在compare函数return中为">". 示例代码: #in ...

  2. C++中compare函数的使用

    转载自 https://blog.csdn.net/qq_35038153/article/details/78191574 compare函数用来进行字符串以及其子串的比较,示例如下: #inclu ...

  3. compare函数的使用

    C++中compare函数的使用 标签: c++string字符串比较compare  分类: C++(17)  版权声明:本文为博主原创文章,未经博主允许不得转载. compare函数用来进行字符串 ...

  4. compare函数c语言,sort(compare)方法

    @无所不能的风: js中reduce.every.map这些api是吸收了FP(函数式编程)的优点引入的,这些api有一个特点,就是将函数名作为变量传入到函数中,这些函数有个专业名词叫高阶函数 函数名 ...

  5. C++中字符串的比较,compare()函数

    字符串可以和类型相同的字符串相比较,也可以和具有同样字符类型的数组比较. Basic_string 类模板既提供了  >.<.==.>=.<=.!= 等比较运算符,还提供了 c ...

  6. python compare函数_Python函数基础

    Python函数基础 1. 定义函数的三种方式 空函数 def func1(): # TODO ..... pass 无参函数 def fun1(): print("test") ...

  7. c语言中 compare函数,C/C++中的字符串比较函数strcmp/memcmp/CString.Compare/CStrin

    memcmp和strncmp的区别 一.memcmp含义 Compare characters in two buffers. int memcmp(    const void* buf1,    ...

  8. C++ STL string类的compare函数使用

    #include <iostream> #include <string> using namespace std;int main() {string a("aBc ...

  9. 【C/C++】string类型的compare函数

    C++string的compare()比较函数 两个字符串相同,返回0. 调用字符串小于被调用字符串,返回-1. 调用字符串大于被调用字符串,返回 1. 字符串说的大小通常和字典顺序是一致的. 字符串 ...

最新文章

  1. OpenCV代码提取:flip函数的实现
  2. UE4 RHI与条件式编译
  3. python如何做一个数据库_Python创建一个新的Django项目(连接到MySQL数据库),python,新建,mysql...
  4. 《大数据分析原理与实践》——习题
  5. asp.net中session的原理及应用
  6. Java——n个数的全排列
  7. 【FLink】Flink checkpoint 实现数据连续计算 恢复机制 拓扑图 变化 如何处理
  8. mysql grant命令详解_mysql grant命令详解 设置mysql远程连接
  9. DES算法的加解密原理(详细算法+样例Demo)
  10. 服务器备案新增网站,已经备案服务器 增加新域名
  11. [WP]第五届XMan选拔赛web
  12. 京东秒杀技巧有哪些(京东秒杀技巧大全)
  13. 太阳能电池基本特性实验报告_太阳能电池基本特性研究实验报告
  14. bootstraptable treegrid
  15. Qt5.9/C++架构实例(一个简单的MCV架构应用实例)
  16. html5超链接不加下划线,css怎么让超链接不加下划线
  17. 发明了万维网的他,如今却想亲手推翻它
  18. 数学之美,C++之美,代码之美
  19. Vscode——远程开发(Windows为主机,Ubuntu为服务器)
  20. 正面硬刚华龙、副业却节节败退的姚忠良,能带白象重获新生吗?

热门文章

  1. linux shell变量作用域,Shell变量的作用域:Shell全局变量、环境变量和局部变量
  2. php字符集转换,php字符集转换
  3. typora插入代码设置_一篇文章教会你如何在Markdown文档中插入数学公式
  4. C语言变量d的定义法则,C语言变量命名规则(3页)-原创力文档
  5. oracle export命令使用浅解,Oracle Export命令使用浅解
  6. javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;
  7. Django-2- 模板路径查找,模板变量,模板过滤器,静态文件引用
  8. 针对模拟滚动条插件(jQuery.slimscroll.js)的修改
  9. async await 的前世今生
  10. JavaScript执行bat文件清理浏览器缓存