思路: 先count一下numbers中0的个数。
情况一 没有大小王:
如果没有0的话,找出最小值mini,因为顺子是差值为一的等差数列,判断sum(array)是否等于mini*5 + 10 ,如果是的话,返回True,反之返回False
情况二 有大小王:
先判断除了0之外,numbers中最大值max-最小值min是否大于4,如果大于4,直接返回False
否则,判断set(numbers)的长度是否等于 6-count(0),不等的话证明除了0之外的其他数有重复,有重复直接返回False,否则返回True
# -*- coding:utf-8 -*- class Solution: def IsContinuous(self, numbers): # write code here if not numbers: return False ghost_count = numbers.count(0) if ghost_count: numbers.sort() mini = numbers[ghost_count] if (max(numbers)-mini)>4: return False if len(set(numbers))!= (6-ghost_count): return False return True else: if len(set(a)) < len(numbers): return False mini = min(numbers) if sum(numbers) == mini*5 +10: return True return False