问题描述

2347. 最好的扑克手牌 (Easy)

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

ranks[i] ,花色为 suits[i]

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

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

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

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

    示例 1:
输入:ranks = [13,2,3,1,9], suits = ["a","a","a","a","a"]
输出:"Flush"
解释:5 张扑克牌的花色相同,所以返回 "Flush" 。

示例 2:

输入:ranks = [4,4,2,4,4], suits = ["d","a","a","b","c"]
输出:"Three of a Kind"
解释:第一、二和四张牌组成三张相同大小的扑克牌,所以得到 "Three of a Kind" 。
注意我们也可以得到 "Pair" ,但是 "Three of a Kind" 是更好的手牌类型。
有其他的 3 张牌也可以组成 "Three of a Kind" 手牌类型。

示例 3:

输入:ranks = [10,10,2,12,9], suits = ["a","b","c","a","d"]
输出:"Pair"
解释:第一和第二张牌大小相同,所以得到 "Pair" 。
我们无法得到 "Flush" 或者 "Three of a Kind" 。

提示:

  • ranks.length == suits.length == 5
  • 1 <= ranks[i] <= 13
  • 'a' <= suits[i] <= 'd'
  • 任意两张扑克牌不会同时有相同的大小和花色。

解题思路

利用两个数组作为哈希表

代码

class Solution {
public:
string bestHand(vector<int> &ranks, vector<char> &suits) {
vector<int> color(4, 0);
vector<int> number(14, 0);
for (int i = 0; i < 5; i++) {
color[suits[i] - 'a']++;
if (color[suits[i] - 'a'] == 5)
return "Flush";
number[ranks[i]]++;
}
int maxnum = 0;
for (int i = 1; i <= 13; i++) {
maxnum = std::max(maxnum, number[i]);
}
if (maxnum >= 3)
return "Three of a Kind";
if (maxnum == 2)
return "Pair";
return "High Card";
}
};

最新文章

  1. Atitti &#160;onvif 设备发现与原理
  2. Linq专题之提高编码效率—— 第三篇 你需要知道的枚举类
  3. 为什么angularjs使用ui-router时要使用html5Mode?
  4. 社交化分享SDK for Unity
  5. codeforces 711B - Chris and Magic Square(矩阵0位置填数)
  6. 【POJ 3176】Cow Bowling
  7. Javascript 笔记与总结(1-2)词法分析
  8. 了解oracle数据库的情况
  9. [转]《深度探索C++对象模型》读书笔记[一]
  10. 深入了解setInterval方法
  11. redis12--常用API
  12. Ubuntu Apache2 配置简单介绍
  13. my dream
  14. 常用base.css
  15. 团队第六次 # scrum meeting
  16. hdu 5025 bfs+状压
  17. [2019BUAA软工]第0次代码作业
  18. Android 目录结构
  19. 关于在JS中AJAX导致跨域问题的解决
  20. 4.2 - MySQL

热门文章

  1. SSM整合【狂神说】
  2. C#整合ActiveMQ与SpringBoot整合ActiveMQ数据间交互
  3. JS 开始时间/结束时间和当前时间进行比较
  4. The table‘xxxx’is full
  5. 面试不愁,给你一份SpringBoot常用注解
  6. css - content-visibility
  7. netmiko批量操作华为设备
  8. elementUI合并单元格
  9. 将【jar包、bat、其他文件】注册到windows服务的三种方法
  10. java实现读取json文件指定字段值