前言
通过leetcode记录自己每天坚持刷题,以此监督自己的学习。不能放假了就懈怠😁
题目简介
题目传送地:剑指 Offer 61. 扑克牌中的顺子
从若干副扑克牌中随机抽 5
张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0
,可以看成任意数字。A 不能视为 14。
示例 1:
输入: [1,2,3,4,5] 输出: True
解析
这个题比较简单,因为只有五张牌,所以判断是不是顺子比较容易。
除去零最大值减去最小值应该小于5并且不能有重复的数字,否则就不是顺子
代码
class Solution:
def isStraight(self, nums: List[int]) -> bool:
s=set()
min_=13
max_=1
for i in nums:
if i==0:
continue
min_=min(min_,i)
max_=max(max_,i)
if i in s:
return False
s.add(i)
if max_-min_>=5:
return False
return True