剑指Offer45:扑克牌顺子

思路:

1、如果输入为空,返回false

2、除了王的任何某个特定数值的牌出现两张或者更多,返回false

3、先统计王的数量,再把牌排序,如果后面一个数比前面一个数大于1以上,那么中间的差值就必须用王来补了。看王的数量够不够补,如果够就返回true,否则返回false。

# -*- coding:utf-8 -*-
class Solution:

    def IsContinuous(self, numbers):
        if not numbers:
            return False
        numbers.sort()
        zeroNum = numbers.count(0)
        for i in range(zeroNum,len(numbers)-1):
            if numbers[i+1]==numbers[i]:
                return False
            else:
                zeroNum = zeroNum - (numbers[i + 1] - numbers[i]-1)
                if zeroNum < 0:
                    return False
        return True

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/85797763