问题描述

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:
  1. 输入:ranks = [13,2,3,1,9], suits = ["a","a","a","a","a"]
  2. 输出:"Flush"
  3. 解释:5 张扑克牌的花色相同,所以返回 "Flush"

示例 2:

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

示例 3:

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

提示:

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

解题思路

利用两个数组作为哈希表

代码

  1. class Solution {
  2. public:
  3. string bestHand(vector<int> &ranks, vector<char> &suits) {
  4. vector<int> color(4, 0);
  5. vector<int> number(14, 0);
  6. for (int i = 0; i < 5; i++) {
  7. color[suits[i] - 'a']++;
  8. if (color[suits[i] - 'a'] == 5)
  9. return "Flush";
  10. number[ranks[i]]++;
  11. }
  12. int maxnum = 0;
  13. for (int i = 1; i <= 13; i++) {
  14. maxnum = std::max(maxnum, number[i]);
  15. }
  16. if (maxnum >= 3)
  17. return "Three of a Kind";
  18. if (maxnum == 2)
  19. return "Pair";
  20. return "High Card";
  21. }
  22. };

2347. 最好的扑克手牌 (Easy)的更多相关文章

  1. 使用javascript随机生成斗地主玩家手牌

    学习javascript估摸着有半个多月了,好歹自己有过编程基础,学的还算轻松,不过js里的面向对象是真的打脑壳,但都但不懂,和我以前学过的c#简直相差太远 今天写了个随机生成斗地主玩家手牌的代码,自 ...

  2. 触控的手牌—Cocos Creator

    科普 Cocos Creator是触控最新一代游戏工具链的名称.如果不太清楚的,可以先看一些新闻.   新编辑器Cocos Creator发布: 对不起我来晚了! http://ol.tgbus.co ...

  3. 输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR

    // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...

  4. 通过欧拉计划学Rust编程(第54题)

    由于研究Libra等数字货币编程技术的需要,学习了一段时间的Rust编程,一不小心刷题上瘾. 刷完欧拉计划中的63道基础题,能学会Rust编程吗? "欧拉计划"的网址: https ...

  5. 扑克模拟,牌型判断java版

    Card类 package com.company; public class Card { private String color; private Integer value; public S ...

  6. 2015华为德州扑克入境摘要——软体project

    直到6一个月2号下午12时00,华为长达一个月的德州扑克锦标赛落下帷幕也被认为是. 我们的团队一直共同拥有3民,间.一个同学(吴)负责算法设计,一个同学(宋)负责分析消息,而我负责的实现框架设计和详细 ...

  7. JavaScript案例开发之扑克游戏

    随着时代的发展,知识也在日益更新,但是基础知识永远不会过时,它是新时代的基石,更是我们进一步学习的保障,下面带着大家用JavaScript开发一款真正的扑克游戏,和大家一起分享,希望你们能够喜欢:闲话 ...

  8. 德州扑克AI--Programming Poker AI(译)

    前言: 最近在研究德州扑克的AI, 也想由浅入深的看下, 在网上找了一圈, 发现很多文章都提到了一篇文章: Programming Poker AI. 仔细拜读了一下, 觉得非常不错. 这里作下简单的 ...

  9. 德州扑克AI

    德州扑克: 1:outs数,就是所听的牌的数量. 例子: 1:听顺子 4567 outs数就是8,能够成顺子的牌为3和8. 5689 outs数就是4,能够成顺子的牌只有7. 2:听同花     35 ...

  10. PTA-德州扑克 题解

    于2020/02/24记录. 德州扑克属实是个带难题.本题解简单易懂,命名合理,应该比较好理解. 题目如下: 最近,阿夸迷于德州扑克.所以她找到了很多人和她一起玩.由于人数众多,阿夸必须更改游戏规则: ...

随机推荐

  1. sql两种表联查更新的方法

    1.update ceshi c1,ceshi2 c2 set c1.num=c2.aa where c1.id=c2.cid; 2.update ceshi c1 INNER JOIN ceshi2 ...

  2. 新发现的几个不错的c++库

    1.coost 包含了各种常用的库,比boost轻量级的基于c++11的库 https://github.com/idealvin/coost 2.ImGui 一个较少依赖的gui界面库 https: ...

  3. (jmeter笔记)jmeter用正则匹配响应数据,满足两个条件

    方法1.用正则匹配响应数据,满足两个条件 \{[^}]+?"Id":(\d*)[^}]+?"Picking"[^}]+?\} 方法2. \{"Pick ...

  4. LWC-001_Event

    文章来源: Events (lwc.dev) 1. 监控子组件的动作: Child.html <template> <button>Click</button> & ...

  5. ROS多机通信

    嵌入式开发板端: export ROS_IP=`hostname -I | awk '{print $1}'`export ROS_HOSTNAME=`hostname -I | awk '{prin ...

  6. windows文件夹被占用的解除办法

    1.第一步,按下快捷键组合 ctrl alt del,打开任务管理器窗口,点击上方菜单栏中的性能选项. 2. 第二步,在性能页面下找到打开资源监视器按钮并点击. 3. 第三步,进入资源监视器页面,点击 ...

  7. JavaScript基础知识整理(ES5创建对象)

    创建对象 我们开始可以用Object构造函数或者对象字面量来快速创建对象,但使用这种方式创建多个对象时会产生大量重复代码,所以我们有了以下几种创建对象的方式. (1)工厂模式 function cre ...

  8. Pytorch实战学习(六):基础CNN

    <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili Basic Convolution Neural Network 1.全连接网络 线性层串行-全连接网络 每一个输入和输 ...

  9. 一个因为windows系统缺失文件而导致的pyspark的BUG

    背景: 在windows 系统中开发pyspark程序. 一个简单的WC程序: from pyspark.sql import SparkSession spark = SparkSession.bu ...

  10. 2023-03-01 fatal: unable to access 'https://github.com/top-think/think/': OpenSSL SSL_read: Connection was reset, errno 10054

    问题描述:在thinkphp官网拉取tp5项目文件时报错: fatal: unable to access 'https://github.com/top-think/think/': OpenSSL ...