从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
示例:
输入: [0,0,1,2,5]
输出: True
思路
首先排序,其次统计数组中0的个数,最后统计排序后的数组中相邻数字之间的空缺个数,如果空缺个数小于等于0的个数且数组中除0之外没有重复的,就是连续的,否则不连续
class Solution:
def isStraight(self, nums: List[int]) -> bool:
if len(nums)<5: return False
nums.sort()
n0 = 0
for i in range(3):
if nums[i] == 0:
n0 += 1
start = n0
if nums[-1] - nums[start] > 4:
return False
else:
if len(set(nums[start:])) != len((nums[start:])):
return False
else:
return True
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof