#4023. 打麻将
打麻将
题目描述
春节快到了,家庭聚会时要打麻将,你能帮助小z判断是否胡牌吗?
一张麻将牌由花色和点数组成,为了简化题意,我们只考虑三种花色和九种点数组成的麻将牌,例如下图所示。
- 万子:,每种牌有 张,共 张牌。
- 筒子(或称饼):,每种牌有 张,共 张牌。
- 条子(或称索子):,每种牌有 张,共 张牌。
在本题当中我们用一个长度为 的字符串表示一张麻将牌:1m表示一万,9m表示九万,6p表示六筒,3s表示三条...
手里的牌可以用一个长度为 28 的字符串表示,按照前后顺序分别表示 张麻将牌。
接下来我们用一个简单的公式来总结判断胡牌的方法:n*AAA+m*ABC+DD 。这个公式分为三个部分:
- AAA:表示三张花色和点数完全相同的牌,例如三个
8p
或者三个9s
。 - ABC:即连续的三张同花色牌,如
3m 4m 5m
,是顺子的构成部分。 - DD:指两个花色和点数相同的牌,如
1s 1s
,主要用来形成对子。
其中,n 和 m 是整数,分别代表 AAA 和 ABC 的数量,为了简化题意,我们认为 有1个对子,剩下的 12 张牌组成 4
组(AAA 或者ABC)即可。
现在小z想知道手里的 张牌是否胡牌了,请你帮他看看,输出 Yes
或者 No
即可。
输入格式
本题有多组测试数据。
输入的第一行包含一个整数 ,表示数据组数。
接下来 行,每行一个长度为 的字符串,表示小z手里的 张牌。
输出格式
输出 行,每行 Yes
或者 No
表示每组数据的判断结果。
5
1m1m1m2p2p2p3s3s3s4m5m6m9s9s
8p1m2m3m6m6m6m3p4p5p7s8s9s8p
1s1s1s2s2s2s3s3s3s7s8s9s6s6s
1m2m2m3m3m4m6p6p6p6p7p8p9m9m
1m2m2m3m3m4m6p6p6p6p7p8p9m9s
Yes
Yes
Yes
Yes
No
提示
样例数据解释:
1m1m1m2p2p2p3s3s3s4m5m6m9s9s
:9s9s
+1m1m1m
+2p2p2p
+3s3s3s
+4m5m6m
1m2m2m3m3m4m6p6p6p6p7p8p9m9m
:9m9m
+1m2m3m
+2m3m4m
+6p6p6p
+6p7p8p
数据范围:
对于 %的数据,手里的牌只有一种花色。
对于 %的数据,手里的牌不超过两种花色。
对于 %的数据,,手里的牌不超过三种花色。
相关
在下列比赛中: