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

P2496. 德州扑克

中等通过率 37% · 提交 567 · 通过 211
模拟哈希表枚举

小慕正在开发一款扑克牌游戏,他需要编写一个判断牌型的模块。每张牌由牌面大小和花色组成,牌面大小为2~10、J、Q、K、A,花色为红桃、黑桃、梅花、方块四种之一。现在给定五张牌,需要判断其属于哪种牌型: 牌型1,顺:同一花色的,例如红桃2、红桃3、红桃4、红桃5、红桃6。 牌型2,四条:四张相同牌面大小加一张单牌,例如红桃A、黑桃A、梅花A、方块A加黑桃K。 牌型3,葫芦:三张相同牌面大小加一对,例如红桃5、黑桃5、梅花5加方块9、梅花9。 牌型4,同花:五张牌花色相同,例如方块3、方块7、方块10、方块J、方块Q。 牌型5,顺子:花色不完全相同的顺子,例如红桃2、黑桃3、红桃4、红桃5、方块6。 牌型6,三条:三张相同牌面大小加两张单牌。 说明: (1)五张牌中不会出现牌面大小和花色完全相同的牌。 (2)编号越小的牌型越大,如同花顺大于四条,以此类推。 (3)包含A的合法顺子只有10、J、Q、K、A和A、2、3、4、5;类似K、A、2、3、4的序列不视为顺子。

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

输入描述

输入由5行组成,每行为一张牌大小和花色,牌大小为2~10、J、Q、K、A,花色分别用字符H、S、C、D表示红桃、黑桃、梅花、方块。

输出描述

输出牌型序号,5张牌符合多种牌型时,取最大的牌型序号输出。

示例

示例 1

输入

4 H
5 S
6 C
7 D
8 D

输出

5

说明:4 5 6 7 8构成顺子,输出5

示例 2

输入

9 S
5 S
6 S
7 S
8 S

输出

1

说明:既是顺子又是同花,输出1,同花顺

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

看不懂题目?点开图解
德州扑克牌型判断图解 牌型1: 同花顺 红桃2 红桃3 红桃4 红桃5 红桃6 (同花色+连续数字) 牌型2: 四条 红桃A 黑桃A 梅花A 方块A + 黑桃K (四张相同数字) 牌型3: 葫芦 红桃5 黑桃5 梅花5 + 方块9 梅花9 (三张相同+一对) 牌型4: 同花 方块3 方块7 方块10 方块J 方块Q (同花色) 牌型5: 顺子 红桃2 黑桃3 红桃4 红桃5 方块6 (连续数字,花色不同) 牌型6: 三条 红桃7 黑桃7 梅花7 + 方块2 红桃K (三张相同+两张单) 编号越小牌型越大 A的合法顺子: 10JQKA 或 A2345 KA234 不合法
写完代码点「提交」,将对全部测试用例判题。

向老师提问

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