你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:

写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:

猜测数字中有多少位属于数字和确切位置都猜对了(称为 “Bulls”,公牛),
有多少位属于数字猜对了但是位置不对(称为 “Cows”,奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。
给你一个秘密数字 secret 和朋友猜测的数字 guess ,请你返回对朋友这次猜测的提示。

提示的格式为 “xAyB” ,x 是公牛个数, y 是奶牛个数,A 表示公牛,B 表示奶牛。

请注意秘密数字和朋友猜测的数字都可能含有重复数字。

示例 1:

输入:secret = “1807”, guess = “7810”
输出:“1A3B”
解释:数字和位置都对(公牛)用 ‘|’ 连接,数字猜对位置不对(奶牛)的采用斜体加粗标识。
“1807”
|
“7810”

示例 2:

输入:secret = “1123”, guess = “0111”
输出:“1A1B”
解释:数字和位置都对(公牛)用 ‘|’ 连接,数字猜对位置不对(奶牛)的采用斜体加粗标识。
“1123” “1123”
| or |
“0111” “0111”
注意,两个不匹配的 1 中,只有一个会算作奶牛(数字猜对位置不对)。通过重新排列非公牛数字,其中仅有一个 1 可以成为公牛数字。

析:

设置长度为10的数组,每遍历一个数字,在数组相应的位置上加1;
取两个数组对应位置的最小值就是相等数字的个数;

解:

public class Test {public static void main(String[] args) {String secret = "1807", guess = "7810";Test test = new Test();String res = test.getHint(secret, guess);System.out.println(res);}public String getHint(String secret, String guess) {int[] sArray = new int[10];int[] gArray = new int[10];int bulkCount = 0;int cowCount = 0;for (int i = 0; i < secret.length(); i++) {if (secret.charAt(i) == guess.charAt(i)) {bulkCount++;} else {sArray[secret.charAt(i) - '0']++;gArray[guess.charAt(i) - '0']++;}}for (int i = 0; i < 10; i++) {cowCount += Math.min(sArray[i], gArray[i]);}return bulkCount + "A" + cowCount + "B";}
}

299. 猜数字游戏。相关推荐

  1. 299. 猜数字游戏

    299. 猜数字游戏 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少.朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜 ...

  2. 18行代码AC-Leecode 299. 猜数字游戏——Leecode每日一题系列

    今天是坚持每日一题打卡的第十三天 题目链接:https://leetcode-cn.com/problems/bulls-and-cows/ 题解汇总:https://zhanglong.blog.c ...

  3. LeetCode 299猜数字游戏

    你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少.朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜测数字中有多少位属于数 ...

  4. 299. 猜数字游戏(简单题)

    题目描述: 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls& ...

  5. LeetCode 299. 猜数字游戏

    1. 题目 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜. 每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls ...

  6. 【LeetCode笔记】299. 猜数字游戏 (Java、偏数学)

    文章目录 题目描述 思路 && 代码 题目描述 顶级阅读题! 今天的每日一题,感觉评论区大佬的写法挺值得记录的,就又水了一篇答题文- 思路 && 代码 O(n).O(1 ...

  7. 每日一题:299. 猜数字游戏

    解题思路 利用HashMap记录字符和其对应的下标集合 代码 class Solution {public String getHint(String secret, String guess) {S ...

  8. leetcode 299. Bulls and Cows | 299. 猜数字游戏(Java)

    题目 https://leetcode.com/problems/bulls-and-cows/ 题解 一个踩比赞多的题,给我的感觉是中规中矩没啥特点,不知道在考察什么.. 思路是,用数组维护一个 m ...

  9. 力扣 299 猜数字游戏(java)

        先说说这个题目的意思,公牛就是位置相同数字相同,母牛就是数字相同,位置不同,最后要得到他们两个的数量.     公牛比较好求,如果同一个位置字符相等公牛的数量就增加,主要是母牛,其实我们可以发 ...

最新文章

  1. Linux Setuid和Setgid
  2. 深度神经网络:WX+B vs XW+B,作者原文已经删除,转载过来了~~~
  3. 基于 .Net Core 的组件 Nuget 包制作 amp; 发布
  4. 从RGB到Lab色彩空间的转换
  5. 软件项目管理的质量保证
  6. ForkJoinPool 偷任务
  7. viewpager初始化fragment没有绘制_NDK OpenGL ES渲染系列 之 绘制三角形
  8. java修改.class重新打包jar
  9. Chrome网页性能分析工具
  10. 2022年上半年软件设计师上午真题及答案解析
  11. Win XP 经典壁纸拍摄地 24 年后变样了
  12. 弹窗php整人_vbs无限弹窗 无敌弹窗整人VBS代码 - 电脑常识 - 服务器之家
  13. pcm设备的注册流程
  14. zip压缩包解压中文乱码问题
  15. Hadoop2.6.5安装部署及环境变量配置
  16. 魔方还原算法(三) 上帝算法
  17. 使用QUuid生成唯一码
  18. 并行与串行传输,串行高速传输
  19. 开源免费的WEB应用防火墙
  20. 阿里云ecs云服务器建立wordpress个人博客教程

热门文章

  1. 教你如何制作镜像文件
  2. 教你用JavaScript制作鼠标特效
  3. oracle 外键 更新,Oracle外键级联删除与更新
  4. ubuntu重启后显卡驱动失效的问题
  5. 只有程序员才能看懂的幽默:程序员最讨厌康熙的哪个儿子
  6. 缓存溢出Buffer Overflow
  7. 2021-11-07 C语言中 枚举的使用:周一至周日的输出
  8. voltDB 集群 配置
  9. 《蜡笔小新》的作者去世了
  10. Cardboard虚拟现实开发技巧(一)之放置一个固定在视野中的物体