299. 猜数字游戏。
你在和朋友一起玩 猜数字(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. 猜数字游戏。相关推荐
- 299. 猜数字游戏
299. 猜数字游戏 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少.朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜 ...
- 18行代码AC-Leecode 299. 猜数字游戏——Leecode每日一题系列
今天是坚持每日一题打卡的第十三天 题目链接:https://leetcode-cn.com/problems/bulls-and-cows/ 题解汇总:https://zhanglong.blog.c ...
- LeetCode 299猜数字游戏
你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少.朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜测数字中有多少位属于数 ...
- 299. 猜数字游戏(简单题)
题目描述: 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls& ...
- LeetCode 299. 猜数字游戏
1. 题目 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜. 每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls ...
- 【LeetCode笔记】299. 猜数字游戏 (Java、偏数学)
文章目录 题目描述 思路 && 代码 题目描述 顶级阅读题! 今天的每日一题,感觉评论区大佬的写法挺值得记录的,就又水了一篇答题文- 思路 && 代码 O(n).O(1 ...
- 每日一题:299. 猜数字游戏
解题思路 利用HashMap记录字符和其对应的下标集合 代码 class Solution {public String getHint(String secret, String guess) {S ...
- leetcode 299. Bulls and Cows | 299. 猜数字游戏(Java)
题目 https://leetcode.com/problems/bulls-and-cows/ 题解 一个踩比赞多的题,给我的感觉是中规中矩没啥特点,不知道在考察什么.. 思路是,用数组维护一个 m ...
- 力扣 299 猜数字游戏(java)
先说说这个题目的意思,公牛就是位置相同数字相同,母牛就是数字相同,位置不同,最后要得到他们两个的数量. 公牛比较好求,如果同一个位置字符相等公牛的数量就增加,主要是母牛,其实我们可以发 ...
最新文章
- Linux Setuid和Setgid
- 深度神经网络:WX+B vs XW+B,作者原文已经删除,转载过来了~~~
- 基于 .Net Core 的组件 Nuget 包制作 amp; 发布
- 从RGB到Lab色彩空间的转换
- 软件项目管理的质量保证
- ForkJoinPool 偷任务
- viewpager初始化fragment没有绘制_NDK OpenGL ES渲染系列 之 绘制三角形
- java修改.class重新打包jar
- Chrome网页性能分析工具
- 2022年上半年软件设计师上午真题及答案解析
- Win XP 经典壁纸拍摄地 24 年后变样了
- 弹窗php整人_vbs无限弹窗 无敌弹窗整人VBS代码 - 电脑常识 - 服务器之家
- pcm设备的注册流程
- zip压缩包解压中文乱码问题
- Hadoop2.6.5安装部署及环境变量配置
- 魔方还原算法(三) 上帝算法
- 使用QUuid生成唯一码
- 并行与串行传输,串行高速传输
- 开源免费的WEB应用防火墙
- 阿里云ecs云服务器建立wordpress个人博客教程