AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2830. 斗地主

中等通过率 45% · 提交 541 · 通过 246
哈希表模拟字符串

小慕最近在开发一款扑克游戏,其中需要实现“斗地主”的牌型判断功能。斗地主起源于湖北十堰房县,据传是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的,如今已风靡整个中国,并流行于互联网上。 小慕需要处理的牌型:,又称顺子,最少 5 张牌,最多 12 张牌(3...A),不能有 2,也不能有大小王,。 例如:3-4-5-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(大王), 每种牌除大小王外有 4 种花色(共有 13X4+2 张牌)

提示:带虚线的词点一下有通俗解释。

输入描述

1. 手上已有的牌 2. 已经出过的牌(包括对手出的和自己出的牌)

输出描述

对手可能构成的最长的顺子(如果有相同长度的顺子,输出牌面最大的那一个),如果无法构成顺子,则输出 NO-CHAIN

示例

示例 1

输入

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

示例 2

输入

3-3-3-3-8-8-8-8
K-K-K-K

输出

NO-CHAIN

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
斗地主顺子判断图解 已知牌(已出+手牌) 3(4张) 4(1张) 5(1张) 6(1张) 7(1张) 8(1张) 9(1张) 10(1张) J(1张) Q(1张) K(1张) A(1张) 对手剩余牌(推算) 4(3张) 5(3张) 6(3张) 7(3张) 8(3张) 9(3张) 10(3张) J(3张) Q(3张) K(3张) A(3张) 最长顺子判断 从3开始检查连续牌,每张至少1张剩余 找到最长连续段:9-10-J-Q-K-A(6张) 输出:9-10-J-Q-K-A
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「斗地主」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。