给你一个整数数组 ranks
和一个字符数组 suit
。你有 5
张扑克牌,第 i
张牌大小为 ranks[i]
,花色为 suits[i]
。
下述是从好到坏你可能持有的 手牌类型 :
"Flush"
:同花,五张相同花色的扑克牌。"Three of a Kind"
:三条,有 3 张大小相同的扑克牌。"Pair"
:对子,两张大小一样的扑克牌。"High Card"
:高牌,五张大小互不相同的扑克牌。
请你返回一个字符串,表示给定的 5 张牌中,你能组成的 最好手牌类型 。
注意:返回的字符串 大小写 需与题目描述相同。


思路:
哈希表,定义规则然后做判断就行。
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"
