成都麻将胡牌规则

本文介绍了成都麻将的胡牌规则,包括必须有一对、每3张牌组成有效组合等,并分享了一道华为编程比赛中关于判断胡牌的题目。通过递归算法检查13张牌加一张可能胡的牌是否满足胡牌条件,同时探讨了成都麻将的缺一门规则及其在某些情况下的应用。
摘要由CSDN通过智能技术生成

说起麻将,那可是川渝市民的最爱,无论亲朋好友聚会,还是业务谈判,总是少不了麻将的声音。 成都麻将只能包括3种类型:条,筒,万。没有“门、东南西北、红中”。 每种牌都是数字从1到9,每个数字有4张,共36张。筒,万,条均一样。 胡牌简化规则如下:

1.必须有一个对子,即两张相同的牌,比如:两个2筒,两个4条等。 2.剩余的牌,每3张需要凑成一个有效牌,比如:3个一样的牌(3个2筒),或者3个顺子(1条2条3条),如果所有的牌都能够凑好,再满足规则2和1,有一个对子,并且所有的牌只有两种类型,那么就可以胡牌了。 3.假设牌不会出现碰的情况,即输入的牌肯定是13张。 4.输入牌肯定都是麻将牌,不用考虑异常输入;也不用考虑会输入“门”,“红中”等成都麻将中不会出现的牌。

5.条用T表示,D用D表示,万用W标识。

6.不用考虑输入的合法性,这个由函数的使用者保证。输入的牌为字符串,字母为大写的TDW”

 

要求根据13个已知输入,判断可以胡那几张牌。

混了这么久,第一次写。昨天参加华为编程比赛。做到了这道题。以前看过,是2012年的原题。

写的也不好,只有功能没得质量。

大概思路是,给13张牌,判断胡哪张。

把每张牌都加入到13张里,构成的14张牌,再判断牌型。

有一种花色要拿来做将。

这种花色牌的数量模3就一定是2。

找到做将牌的花色。

将这种花色去掉可能是将的两个牌,再判断剩下的拍是否满足三个一组的胡牌条件。

剩下的花色直接判断是否满足三个一组的胡牌条件。

判断的时候用递归实现,将满足条件的项减去后,传入下一次递归。

最后剩下的牌个数为0时,就通过。

成都麻将还要判断缺一门的条件,即最多只有两种花色。

但是笔试提交的时候发现,加了该条件得分反而更低。

估计是用例的问题。给出的样例也说明不是缺一门也可以胡。

#include <stdio.h>
#include <vector&
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值