【最长的顺子】斗地主起源于湖北十堰房县,据说是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的,如今已风靡整个中国,并流行于互联网上。
牌型 : 单顺,又称顺子,最少5张牌,最多12张牌(3…A)不能有2,也不能有大小王,不计花色。
例如 3 - 4 - 5 - 6 - 7 - 8,7 - 8 - 9 - 10 - J - Q,3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - J - Q - K - A
可用的牌 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < J < Q < K < A < 2 < B(小王) < C(大王),每种牌除大小王外有四种花色(共有13 * 4 + 2张牌)
输入:1、手上有的牌 2、已经出过的牌(包括对手出的和自己出的牌)
输出:对手可能构成的最长的顺子(如果有相同长度的顺子,输出牌面最大的那个那一个),如果无法构成顺子,则输出 NO - CHAIN
输入描述 :
输入的第一行为当前手中的牌
输入的第二行为已经出过的牌
输出描述 :
最长的顺子
示例 :
输入
3-3-3-3-4-4-5-5-6-7-8-9-10-J-Q-K-A
4-5-6-7-8-8-8
输出
9 - 10 - J - Q - K - A
string long_shunzi()
{map<string, int> strtoint;strtoint[string("3")] = 0;strtoint[string("4")] = 1;strtoint[string("5")] = 2;strtoint[string("6")] = 3;strtoint[string("7")] = 4;strtoint[string("8")] = 5;strtoint[string("9")] = 6;strtoint[string("10")] = 7;strtoint[string("J")] = 8;strtoint[string("Q")] = 9;strtoint[string("K")] = 10;strtoint[string("A")] = 11;map<int, string> inttostr;inttostr[0] = "3";inttostr[1] = "4";inttostr[2] = "5";inttostr[3] = "6";inttostr[4] = "7";inttostr[5] = "8";inttostr[6] = "9";inttostr[7] = "10";inttostr[8] = "J";inttostr[9] = "Q";inttostr[10] = "K";inttostr[11] = "A";vector<int> vec;vector<pair<int, int>> vecres;for (int i = 0; i < 12; ++i) {vec.push_back(int(4));}string str1;string str2;cin >> str1;cin >> str2;// 除去已知的牌string cs = "";for (auto c : str1) {if (c != '-') {cs += c;} else {vec[strtoint[cs]]--;cs = "";}}vec[strtoint[cs]]--;cs = "";for (auto c : str2) {if (c != '-') {cs += c;} else {vec[strtoint[cs]]--;cs = "";}}vec[strtoint[cs]]--;cs = "";// 双指针找连续子序列for (int i = 0; i < 12; ++i) {int right = i;while (right < 12) {if (vec[right] > 0) {right++;} else {break;} }if (right - i >= 5) {vecres.push_back(make_pair(i, right));}i = right;}// 连续子序列找满足条件的 1、最长的2、 同长牌面大的int flag = 0;int max = 0;int j = 0;for (auto ele : vecres) {int count = ele.second - ele.first;if (max <= count) {max = count;flag = j;}j++;}int fir = vecres[flag].first;int sec = vecres[flag].second;string outsr;for (int i = fir; i < sec; ++i) {outsr += inttostr[i];if (i != sec - 1) {outsr += "-";}}cout << outsr << endl;return outsr;
}
【最长的顺子】斗地主起源于湖北十堰房县,据说是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的,如今已风靡整个中国,并流行于互联网上。相关推荐
- 社群运营当下最流行的红包玩法
关于社群的日常运营有很多手段,其中红包是最有效的方法之一,接下来我们来看看基于企微社群内的红包玩法 一. 8种社群红包玩法 1.欢迎红包 以往在班级或者一个团队有新成员加入的时候,除了群主介绍之外,发 ...
- 华为OD机试 - 最长的顺子
题目描述 斗地主起源于湖北十堰房县,据说是一位叫吴修全的年轻人根据当地流行的扑克玩法"跑得快"改编的,如今已风靡整个中国,并流行于互联网上. 牌型:单顺,又称顺子,最少5张牌,最多 ...
- HUAWEI机试:最长的顺子
希望有更好的解法 题目描述 斗地主起源于湖北十堰房县,据说是一位叫吴修全的年轻人根据当地流行的扑克玩法"跑得快"改编的,如今已风靡整个中国,并流行于互联网上. 牌型: 单顺,又称顺 ...
- “京东红”托起“松石绿” 湖北十堰让世界发现中国珠宝之美
中新网1月14日电 石尚之都,玉满天下.1月12日,中国(十堰)绿松石创新设计大赛"决战"京城.十堰市政府携手京东云.京东珠宝,在自然资源部珠宝玉石首饰管理中心 (国家珠宝玉石质量 ...
- 银杏谷资本:他们都是跑在互联网上的制造企业 | 倒计时5天
关注ITValue,查看企业级市场最新鲜.最具价值的报道! 摘要 2018雪浪大会将于6月30日-7月1日于中国无锡太湖国际博览中心盛大举办,此次大会将由主论坛.近30场分论坛与近万平米智能制造科技 ...
- 一款英国折叠车如何在中国城市流行?
花一万多块购买一辆 自行车 ,这在几年前还被视为疯狂的事.如今,越来越多人愿意为便利和设计买单,不少公司人的愿望清单加上了Brompton,一款被车迷称为"小布"的英国折叠车.那么 ...
- 《进化——我们在互联网上奋斗的故事》一一1.11 OKRs在J公司
本节书摘来自异步社区出版社<进化--我们在互联网上奋斗的故事>一书中的第1章,第1.11节,作者:北大首届互联网CIO-CTO班全体同学,更多章节内容可以访问云栖社区"异步社区& ...
- 计算机网络8 互联网上的音视频服务
概述 技术的进步,使得许多用户开始利用互联网传送音频.视频数据 这种音频.视频常称为多媒体信息 多媒体信息的两个特点如下: 多媒体信息的信息量很大:传输需要的码率高,因此必须采用各种信息压缩技术 传输 ...
- 你正在为互联网上的“免费”付出什么?
原地址:http://chuansong.me/n/1849146 2015-10-27 霍炬 歪理邪说 上周,网易邮箱密码泄漏的事情让不少人吓了一跳.当时我没凑这个热闹.现在事件热点过去了,可以来聊 ...
最新文章
- lvs+iptables持久连接
- PIE SDK剔除栅格块算法
- 如何让tomcat只支持ipv4
- php在html里面的位置,关于script在html中的摆放位置解析
- On the coexistence of transport protocols in data centers
- Docker快速安装Sybase数据库DBeaver数据库图形化管理开发工具
- 啥?!BM25 比语义向量检索效果好?
- Javascript的冒泡排序和二分查找
- 谷歌云盘快速下载大文件
- 免积分下载与PDF转换
- 淘宝消费者行为分析实例(pandas, matplotlib, pyechart)(超详细)
- 软考中级网络工程师-第一章计算机网络概论(自我学习)
- The Matrix
- 如何将word文件的大小进行压缩?
- 想玩IEO又怕跑得慢?LBank的“锁仓释放”了解下
- tecplot改变x轴y轴
- 学驾照考交规去上海公安培训总部考试全过程
- JS Array数组和函数
- 或门,OR Gate
- javax.crypto.Cipher类--加密和解密