扑克牌比大小:寻找最小胜出牌型
扑克牌比大小:寻找最小胜出牌型
题目背景
中秋节假期到了,小F终于可以离开学校,奔向她朝思暮想的小C。见面一阵亲昵后,她们做的第一件事竟然是——坐下来打牌?她们正在玩一副扑克牌。
为了方便描述,我们用一个长度为2的字符串来表示一张扑克牌的信息:
- 字符串的第一个字符是'C'、'D'、'H'、'S'之一,分别表示扑克牌的花色是黑桃、红桃、方片、梅花。* 字符串的第二个字符是'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'T'、'J'、'Q'、'K'、'A'之一,表示一张扑克牌对应的点数。* 特别的,我们用'T'表示点数10。
在接下来计算点数时,我们认为'J'、'Q'、'K'、'A'的点数为依次为11、12、13、14。其余牌的点数就是他们自己的数字点数,例如'3'的点数为3,'T'的点数为10。
为了简化问题,我们认为游戏的双方手中均不含大小王,且可以打出的牌型只有如下五种:
- 单张: 一张牌* 对子: 两张点数相同的牌* 同花顺: 三张及以上花色相同且点数连续的牌,特别的,'A'不能用于同花顺* 普通顺子: 五张及以上点数连续且不是同花顺的牌,特别的,'A'不能用于顺子* 三带一: 三张点数相同的牌带一张其它点数的牌
定义一次打出的牌称为一套牌,定义一套打出的牌的点数如下:
- 如果这套牌的牌型不是三带一,则这套牌的点数是此次打出的所有牌的点数之和。例如同花顺'C9', 'CT', 'CJ'的点数是9 + 10 + 11 = 30。* 如果这套牌的牌型是三带一,则这套牌的点数是那三张点数相同的牌的点数。例如,'D3', 'S3', 'H3', 'S5'的点数是3。
现在,小C打出了一套牌,我们保证这套牌的牌型是上述五种牌型之一。给你小F的手牌,你帮小F找到一套点数最小的牌组,满足:
- 小F的牌型、张数均与小C的相同。* 小F的牌组点数大于小C的牌组点数。
如果有多个符合要求的牌组,你可以输出任意一个。
原文地址: https://www.cveoy.top/t/topic/UlO 著作权归作者所有。请勿转载和采集!