作者:小迅
链接:https://leetcode.cn/problems/best-poker-hand/solutions/1694500/jian-dan-mo-ni-by-xun-ge-v-q4zp/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
示例
思路
解题思路
模拟
按照题目给定要求进行模拟即可
将给定两个数组,进行简单的处理一下,将大小相同,花色相同的牌进行统计,然后再对统计之后的数组,进行降序排序,再按照题目要求判断最大值满足那种要求的牌型
代码
int cmp(const void * a, const void *b)
{
return *(int *)b - *(int *)a;
}
char * bestHand(int* ranks, int ranksSize, char* suits, int suitsSize){
int ans[14];
int str[4];
memset(ans, 0, sizeof(int) * 14);//初始化
memset(str, 0, sizeof(int) * 4);//初始化
for(int i = 0; i < ranksSize; i++)//对牌进行处理
{
ans[ranks[i]]++;
str[suits[i] - 'a']++;
}
qsort(ans, 14, sizeof(int), cmp);
qsort(str, 4, sizeof(int), cmp);//降序
if(str[0] == 5)//判断牌型
{
return "Flush";
}
if(ans[0] >= 3)
{
return "Three of a Kind";
}
if(ans[0] == 2)
{
return "Pair";
}
return "High Card";
}
作者:小迅
链接:https://leetcode.cn/problems/best-poker-hand/solutions/1694500/jian-dan-mo-ni-by-xun-ge-v-q4zp/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。