题目:
给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌,第 i 张牌大小为 ranks[i] ,花色为 suits[i] 。
下述是从好到坏你可能持有的 手牌类型 :
"Flush":同花,五张相同花色的扑克牌。
"Three of a Kind":三条,有 3 张大小相同的扑克牌。
"Pair":对子,两张大小一样的扑克牌。
"High Card":高牌,五张大小互不相同的扑克牌。
请你返回一个字符串,表示给定的 5 张牌中,你能组成的 最好手牌类型 。
注意:返回的字符串 大小写 需与题目描述相同。
解法:
class Solution:
def bestHand(self, ranks: List[int], suits: List[str]) -> str:
h=Counter(ranks)
if len(set(suits))==1:
return "Flush"
elif len(h) == 5:
return "High Card"
elif max(h.values())>=3:
return "Three of a Kind"
else:
return "Pair"
补充:
Counter() 是 collections 库中的一个函数,可以用来统计一个 python 列表、字符串、元组等可迭代对象中每个元素出现的次数,并返回一个字典。
常用的用法参考这篇链接:Python的counter()函数_python counter_IT测试之家的博客-CSDN博客