LeetCode·每日一题·2347.最好的扑克手牌·模拟

作者:小迅
链接: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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

时间空间复杂度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值