Leetcode--python--Swordはオファー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