思路: 先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
京公网安备 11010502036488号