1. 题目

珠玑妙算游戏(the game of master mind)的玩法如下。

计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。
例如,计算机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。
作为用户,你试图猜出颜色组合。打个比方,你可能会猜YRGB。
要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。
注意,“猜中”不能算入“伪猜中”。

给定一种颜色组合solution和一个猜测guess,编写一个方法,返回猜中和伪猜中的次数answer,其中answer[0]为猜中的次数,answer[1]为伪猜中的次数。

示例:
输入: solution="RGBY",guess="GGRR"
输出: [1,1]
解释: 猜中1次,伪猜中1次。提示:
len(solution) = len(guess) = 4
solution和guess仅包含"R","G","B","Y"这4种字符

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/master-mind-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:vector<int> masterMind(string solution, string guess) {map<char,int> m;vector<int> ans(2,0);for(int i = 0; i < 4; ++i){if(solution[i] == guess[i])//猜中了ans[0]++;else//没猜中m[solution[i]]++;}for(int i = 0; i < 4; ++i){if(guess[i] != solution[i])//没猜中的里面,有伪猜中{if(m.count(guess[i]) && m[guess[i]] > 0)ans[1]++, m[guess[i]]--;}}return ans;}
};

程序员面试金典 - 面试题 16.15. 珠玑妙算(map计数)相关推荐

  1. [Leetcode][程序员面试金典][面试题16.11][JAVA][跳水板][数学][动态规划]

    [问题描述][简单] [解答思路] 边界问题 k=0 ,不能产生跳水板,返回空数组 shorter 等于longer,只有一种跳水板,返回longerk 思路 一般情况,k块木板,k种可能 跳水板的长 ...

  2. java兰顿蚂蚁解题思路_程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)

    1. 题目 一只蚂蚁坐在由白色和黑色方格构成的无限网格上. 开始时,网格全白,蚂蚁面向右侧. 每行走一步,蚂蚁执行以下操作. (1) 如果在白色方格上,则翻转方格的颜色,向右(顺时针)转 90 度,并 ...

  3. 程序员面试金典 - 面试题 16.09. 运算(只用+法做乘除)

    1. 题目 请实现整数数字的乘法.减法和除法运算,运算结果均为整数数字, 程序中只允许使用加法运算符和逻辑运算符,允许程序中出现正负常数,不允许使用位运算. 你的实现应该支持如下操作: Operati ...

  4. 程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)

    1. 题目 一只蚂蚁坐在由白色和黑色方格构成的无限网格上. 开始时,网格全白,蚂蚁面向右侧. 每行走一步,蚂蚁执行以下操作. (1) 如果在白色方格上,则翻转方格的颜色,向右(顺时针)转 90 度,并 ...

  5. 程序员面试金典 - 面试题 17.15. 最长单词(排序+递归)

    1. 题目 给定一组单词words,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成. 若有多个长度相同的结果,返回其中字典序最小的一项,若没有符合要求的单词则返回空字符串. ...

  6. 程序员面试金典 - 面试题 16.16. 部分排序(排序/不排序)

    文章目录 1. 题目 2. 解题 2.1 排序 2.2 不排序 1. 题目 给定一个整数数组,编写一个函数,找出索引 m 和 n ,只要将索引区间 [m,n] 的元素排好序,整个数组就是有序的. 注意 ...

  7. 程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)

    1. 题目 给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, ...

  8. 程序员面试金典 - 面试题 16.18. 模式匹配(逻辑题)

    1. 题目 你有两个字符串,即pattern和value. pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式. 例如,字符串"ca ...

  9. 程序员面试金典 - 面试题 16.14. 最佳直线(哈希map+set)

    1. 题目 给定一个二维平面及平面上的 N 个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]. 请找出一条直线,其通过的点的数目最多. 设穿过最多点的直线所穿过的全部点编号 ...

最新文章

  1. R语言绘制堆叠面积图
  2. Nature: 拟南芥微生物组功能研究1培养组学—高通量细菌分离培养鉴定
  3. cass插件_南方CASS专题系列,全套教程+视频讲解+插件汇总,全部打包速带走
  4. python具备哪些特点_Python具备那些特点?
  5. Git常用的基本命令
  6. 最简单的方式实现QML无边框窗口边缘拖动调整大小
  7. jdbc mysql 字符集_JDBC对Mysql utf8mb4字符集的处理
  8. WordPress Citizen Space插件跨站请求伪造漏洞
  9. CRT工具连接Linux操作手册
  10. 开店软件透彻分析推荐
  11. Hadoop作业提交多种方案具体流程详解
  12. visio旋转图形_visio2013怎么旋转图形? visio调整图形角度的教程
  13. excel文件修复工具_微软修复磁盘清理工具无法完全删除windows.old文件夹问题
  14. 成都Uber优步司机奖励政策(3月11日)
  15. Nginx到底能干嘛?!Nginx是做什么用的?通俗易懂,前端必看!
  16. 贫民窟里的WPF系列讲座(二)
  17. 技术、产品、交流、思考 - 微软技术暨生态大会 2018
  18. python压缩文件的简单方式
  19. 2019高考数学-概率问题
  20. 源程序 正算主程序 GSZS

热门文章

  1. dump分析工具_Java应用CPU过高,如何排查?参考解决思路和常用工具总结
  2. Linux进程全解8——exec 族函数
  3. 在线生成大全(这里真的什么都有)
  4. Could not obtain connection metadata
  5. SAP中货源清单创建的几种方法
  6. VMWare serve 2.0 进入 RHEL Linux rescue模式
  7. 【转载】KMP算法详解
  8. 在mojoportal项目中发邮件使用的是dotnetopenmail
  9. 你可能对电灯泡一无所知
  10. 20210122发文补充截图