博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯 扑克序列(全排列)
阅读量:6502 次
发布时间:2019-06-24

本文共 1217 字,大约阅读时间需要 4 分钟。

扑克序列

A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。

要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。

请填写出所有符合要求的排列中,字典序最小的那个。

例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。

请通过浏览器提交答案。“A”一定不要用小写字母a,也不要用“1”代替。字符间一定不要留空格。

 

解题思路:由题可知,题中的序列是固定的,只有AA223344这8个元素,所以可以枚举其全部全排列,对每个排列根据条件进行筛选,最后保存到set即可

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 9 int main() 10 {11 set
sset;12 string s = "AA223344";13 sort(s.begin(), s.end()); //一定要先排序,这样它才能成为全排列的第一个序列14 do15 {16 int a1 = s.find('A');17 int a2 = s.find('A', a1 + 1);18 int b1 = s.find('2');19 int b2 = s.find('2', b1 + 1);20 int c1 = s.find('3');21 int c2 = s.find('3', c1 + 1);22 int d1 = s.find('4');23 int d2 = s.find('4', d1 + 1);24 if ((a2 - a1 == 2) && (b2 - b1 == 3) && (c2 - c1 == 4) && (d2 - d1 == 5))25 sset.insert(s);26 } while (next_permutation(s.begin(), s.end())); //到逆序(从大到小的顺序)的时候返回false27 28 29 for (set
::iterator it = sset.begin(); it != sset.end(); ++it)30 cout << *it << endl;31 32 return 0;33 }

输出为:

2342A3A4

4A3A2432

所以本题答案为: 2342A3A4

 

转载于:https://www.cnblogs.com/FengZeng666/p/10464309.html

你可能感兴趣的文章
zcu106 固化_xilinx zcu106 vcu demo
查看>>
java ftpclient 代码_java后台代码ftpclient下载文件
查看>>
java mina 长连接_MINA实现TCP长连接(二)——服务端实现
查看>>
java数据库生成model_继承BaseModelGenerator 生成Model时添加数据库表字段 生成代码示例...
查看>>
https redirects java_java HttpURLConnection 得到 Redirect 转向的例子
查看>>
java读取html文件并替换_java读取html并替换相关内容
查看>>
java面向对象的概念_java面向对象(上)-- 面向对象的概念
查看>>
dbscan算法python实现_Python实现DBScan
查看>>
java智能聊天软件_Java使用青云客智能聊天接口做一个小助手
查看>>
java定义player类_Java自定义一个异常类NoThisSongException和Player类
查看>>
java 字符串 算法 面试题_java笔试手写算法面试题大全含答案
查看>>
java内部类访问外部类变量 final_Java内部类引用外部类中的局部变量为什么必须是final问题解析...
查看>>
java编程思想第四章_《JAVA编程思想》学习笔记——第四章 控制执行流程
查看>>
java 栈帧与类的关系_深入理解Java虚拟机之类运行时栈帧结构
查看>>
php中删除评论怎么做的,详解PHP如何实现评论回复删除功能
查看>>
macports 安装php,「macports」MacOS 中 MacPorts 安装和使用 - 金橙教程网
查看>>
php 审计 for linux,for linux是什么意思
查看>>
matlab里面连接器是什么,Oops - an error has occurred
查看>>
matlab建立桌面图标,在ubuntu16.04上创建matlab的快捷方式(实现方法)
查看>>
matlab 识别率,【caffe-Windows】识别率批量输出——matlab实现
查看>>