扑克中的顺子
题目:
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。注:A 不能视为 14
示例:
A 2 3 4 5 =>True
0 2 0 4 5 =>True
6 7 9 10 13 =>False
解析:
这一题看上去较为简单,只需将输入的五个数进行排序即可。因为有大小王的存在,我们可以考虑每两张牌之间的差值。
在排除大小王的情况下,我们的目标顺子中,五张牌每两张牌之差加起来的数值是4 <5
由此,给出以下代码
def isStraight(nums): nums.sort() sub=0 for i in range(5): if nums[i] == 0: //排除大小王的干扰 continue if i == 4://防止下标越界 continue elif nums[i] == nums[i+1]://判断是否为对子 return false sub += nums[i+1]-nums[i] return sub < 5

浙公网安备 33010602011771号