无聊的刷题笔记

扑克牌中的顺子

剑指Offer 61

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。

示例 1:

输入: [1,2,3,4,5]
输出: True

示例 2:

输入: [0,0,1,2,5]
输出: True

限制:

数组长度为 5

数组的数取值为 [0, 13] .

Solution

class Solution:
def isStraight(self, nums: List[int]) -> bool:
h = [0]*14
m = 14
n = -1
wang = 0
for i in nums:
if i == 0:
wang += 1
continue
if h[i] == 1:
return False
else:
h[i] = 1
if i < m:
m = i
if i > n:
n = i
# print(n, m ,wang)
if 4 - wang <=n -m<= 4:
return True
return False