扑克牌顺子
这道题的输入数据其实规模很小,但是因为这个连续性的问题很头疼,一开始并没有想到一个很泛化的解决方案,但是实际上,我们可以对数组进行排序,然后找到里面总共0的个数,再对剩余的数之间的差距求和,这个和大于0的总数则表示他们之间的差距是无法填充满的,另外还要注意有对子的情况
class Solution:
def IsContinuous(self, numbers):
# write code here
if len(numbers) != 5:
return False
countOfZero = numbers.count(0)
numbers.sort()
cum = 0
for i in xrange(countOfZero, 4):
if numbers[i + 1] == numbers[i]:
return False
cum += (numbers[i + 1] - numbers[i] - 1)
return cum <= countOfZero