先说说这个题目的意思,公牛就是位置相同数字相同,母牛就是数字相同,位置不同,最后要得到他们两个的数量。
    公牛比较好求,如果同一个位置字符相等公牛的数量就增加,主要是母牛,其实我们可以发现,当字符不同的时候,我们只需要分别统计这个字符在scret串里出现的次数和在guess串里出现的次数,最后比较这两个数组里面对应的字符数量,哪个少哪个就是这个字符对应的母牛的个数。由于有可能不止一个母牛,所以我们得遍历数组,将所有的母牛数量加起来,得到最终的母牛数量。

class Solution {public String getHint(String secret, String guess) {int bulls = 0;int[] cntS = new int[10];int[] cntG = new int[10];for (int i = 0; i < secret.length(); ++i) {if (secret.charAt(i) == guess.charAt(i)) {++bulls;} else {++cntS[secret.charAt(i) - '0'];++cntG[guess.charAt(i) - '0'];}}int cows = 0;for (int i = 0; i < 10; ++i) {cows += Math.min(cntS[i], cntG[i]);}return Integer.toString(bulls) + "A" + Integer.toString(cows) + "B";}
}

使用样例2,来模拟一下过程,scret:1123 guess:0111
i=0的时候,字符不同,cntS[1]++=1,cntG[0]++=1
i=1的时候,字符相同,bulls+=1;
i=2的时候,字符不同,cntS[2]++=1;,cntG[1]++=1
i=3的时候,字符不同,cntS{3]++=1,cntG[1]++=2;

只有一个公牛,遍历两个数组,母牛的数量=1,所以就是一公牛一母牛。

力扣 299 猜数字游戏(java)相关推荐

  1. 299. 猜数字游戏

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

  2. 猜数字游戏 - Java实现

    猜数字游戏 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 &quo ...

  3. 简单猜数字游戏Java实现

    问题 设计一个猜数字游戏,系统随机产生一个100以内的整数,然后由玩家猜测该数字,如果没猜中,系统提示玩家数字过大或过小,玩家根据提示继续猜,如果五次均没有猜中,游戏自动结束. 原理很简单,直接上代码 ...

  4. 猜数字游戏java编程_Java编写猜数字小游戏

    本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是Java语言写的一个猜数字小游戏引用片段: import java.text.SimpleDateFormat; impo ...

  5. 二分法解决力扣374.猜数字大小 C语言

    题目 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了. 你可以通过调用一个预先 ...

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

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

  7. LeetCode 299. 猜数字游戏

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

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

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

  9. LeetCode 299猜数字游戏

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

最新文章

  1. 定义一个Address 类(java)
  2. linux ha 切换脚本,linux-HA 系统的故障切换过程细节。
  3. VMware或者KVM克隆的虚拟机网卡无法启动
  4. [Linux]Linux下网络配置文件总结(转)
  5. 自然语言处理期末复习(1)n元模型
  6. SqlServer 2014 还原数据库时提示:操作系统返回了错误5,,拒绝访问
  7. python 查看 .npy文件 和 .pkl 文件的方法
  8. 过滤特征_机器学习深度研究:特征选择中几个重要的统计学概念
  9. vue后端必须接口吗_前后端分离模式,后端说开发完才能给接口文档,合理吗
  10. python数据如何保存到excel中
  11. QT 6.3和Visual Studio 2022详细安装及配置教程
  12. 中国大学mooc慕课题库答案怎么查,这里全有了
  13. 一个遮罩层怎么遮罩两个图层_遮罩动画是由两个图层组成的,一个是遮罩层,一个是被遮罩层。...
  14. Altium Designer 总结
  15. 2020.7.24 T3终章-剑之魂(jz暑假训练day9)
  16. leetcode (Longest Harmonious Subsequence)
  17. solidity部署和验证代理合约
  18. 金蝶kis记账王怎么反审核凭证
  19. 程序员最容易的病---发胖啤酒肚
  20. 异步三部曲之promise

热门文章

  1. 人工智能在音乐领域的应用概述(1)---听歌识曲
  2. nide-js.nt
  3. JAVA-IDEA开发10个小手段
  4. Android 之AS项目,无法编译,Make Project(小锤子)、Rebuild Project、Clean Project都无效
  5. 电路中IC器件电压符号的解释
  6. 华为2288服务器不显示BIOS,设置BIOS - RH2288H V3 服务器 V100R003 用户指南 41 - 华为
  7. 如何使用QQ群日历和群活动进行会议室安排
  8. 沉思录三:敏捷开发的精髓是什么
  9. CANOpen协议详解(一):CANfestival源码分析
  10. android 有哪些设备id,Android之设备ID(Device ID)