leetcode--python--剑指 Offer 61

扑克牌中的顺子

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。

class Solution:
    def isStraight(self, nums: List[int]) -> bool:
        # count_0 = 0
        # max_num, min_num = 0, 14
        # for num in nums:  
        #     if num == 0:
        #         count_0+=1
        #     else:
        #         if nums.count(num) > 1:
        #             return(False)
        #         if num < min_num:
        #             min_num = min(num, min_num)
        # res = max(nums) - min_num
        # if res - count_0 > 4:
        #     return(False)
        # else:
        #     return(True)

        #
        min_num, max_num = 14, 0
        repeat = set()
        for num in nums:
            if num == 0:
                continue
            if num in repeat:
                return(False)
            min_num = min(num, min_num)
            max_num = max(num, max_num)
            repeat.add(num)
        return(max_num - min_num < 5)

猜你喜欢

转载自blog.csdn.net/AWhiteDongDong/article/details/114260638