from typing import List
class Solution:
def isStraight(self, nums: List[int]) -> bool:
ma, mi = 0, 14
repeat = set()
for num in nums:
if num == 0:
continue
ma = max(ma, num)
mi = min(mi, num)
if num in repeat:
return False
repeat.add(num)
return ma - mi < 5
if __name__ == '__main__':
solution = Solution()
nums = [1, 2, 3, 4, 5]
nums = [0, 0, 1, 1, 6]
res = solution.isStraight(nums)
print(res)
from typing import List
class Solution:
def isStraight(self, nums: List[int]) -> bool:
joker = 0
nums.sort() # 数组排序
for i in range(4):
if nums[i] == 0: joker += 1 # 统计大小王数量
elif nums[i] == nums[i + 1]: return False # 若有重复,提前返回 false
return nums[4] - nums[joker] < 5 # 最大牌 - 最小牌 < 5 则可构成顺子
if __name__ == '__main__':
solution = Solution()
nums = [1, 2, 3, 4, 5]
nums = [0, 0, 1, 1, 6]
res = solution.isStraight(nums)
print(res)