LeetCode 2347. 最好的扑克手牌缩略图

给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌,第 i 张牌大小为 ranks[i] ,花色为 suits[i] 。

下述是从好到坏你可能持有的 手牌类型 

  1. "Flush":同花,五张相同花色的扑克牌。
  2. "Three of a Kind":三条,有 3 张大小相同的扑克牌。
  3. "Pair":对子,两张大小一样的扑克牌。
  4. "High Card":高牌,五张大小互不相同的扑克牌。

请你返回一个字符串,表示给定的 5 张牌中,你能组成的 最好手牌类型 。

注意:返回的字符串 大小写 需与题目描述相同。

2347. 最好的扑克手牌 – 力扣(Leetcode)

LeetCode 2347. 最好的扑克手牌插图
OpenCV步步精深-可心科创工作室
LeetCode 2347. 最好的扑克手牌插图1
OpenCV步步精深-可心科创工作室

思路:

哈希表,定义规则然后做判断就行。

python3实现:

class Solution:
    def bestHand(self, ranks: List[int], suits: List[str]) -> str:
        # 哈希表,定义规则然后做判断就行。
        dic_suits = collections.Counter(suits)
        dic_ranks = collections.Counter(ranks)
        if len(dic_suits) == 1:
            return "Flush"
        if len(dic_ranks) == 2:
            return "Three of a Kind"
        if len(dic_ranks) == 3:
            if 3 in list(dic_ranks.values()):
                return "Three of a Kind"
            else:
                return "Pair"
        if len(dic_ranks) == 4:
            return "Pair"
        else:
            return "High Card"
LeetCode 2347. 最好的扑克手牌插图2
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注