当前位置:网站首页>LeetCode_299_猜数字游戏
LeetCode_299_猜数字游戏
2022-08-04 12:46:00 【Fitz1318】
题目链接
题目描述
你在和朋友一起玩 猜数字(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 可以成为公牛数字。
提示:
1 <= secret.length, guess.length <= 1000secret.length == guess.lengthsecret和guess仅由数字组成
解题思路
遍历+统计
- 对于公牛,需要数字和位置都一样,只要遍历secret和guess,找到
secret.charAt(i) == guess.charAt(i)的数量即可 - 对于奶牛,只需要统计sercet和guess中各个字符出现的次数,然后取相同字符的最小值累加,然后再减去公牛的数量即可
AC代码
class Solution {
public String getHint(String secret, String guess) {
int len = secret.length();
int correct = 0;
int justSame = 0;
int[] recordS = new int[10];
int[] recordG = new int[10];
for (int i = 0; i < len; i++) {
char s = secret.charAt(i);
char g = guess.charAt(i);
if (s == g) {
correct++;
}
recordS[s - '0']++;
recordG[g - '0']++;
}
justSame += Math.min(recordS[0], recordG[0]);
for (int i = 1; i <= 9; i++) {
justSame += Math.min(recordS[i], recordG[i]);
}
return correct + "A" + (justSame - correct) + "B";
}
}
边栏推荐
- 【UML】信息系统分析与设计知识点总结
- 使用SQLServer复制数据库
- “蔚来杯“2022牛客暑期多校训练营2 G、J、K
- Two years of independent development experience Programmers tell us the experience of making money (listen to the masters who really make money)
- 【解决方案 三十一】Navicat数据库结构同步
- COMSOL空气反应 模型框架
- LeetCode每日一题(858. Mirror Reflection)
- du命令_set命令选项
- 高手,云集在于REST、gRPC 和 GraphQL之间!
- Hit the interview!The latest interview booklet of Ali Jin, nine silver and ten is stable!
猜你喜欢

集群监控——Zabbix

使用SQLServer复制数据库

【解决方案 三十一】Navicat数据库结构同步

小程序对接企业微信客服

【自动微分实现】反向OO实现自动微分(Pytroch核心机制)

Neck modules of the yolo series

How to develop small program plug-ins to achieve profitability?

【黑马早报】尚乘数科上市13天,市值超阿里;北大终止陈春花聘用合同;新东方花近200亿退学费和遣散费;张小泉75%产品贴牌代工...

The head module of the yolo series

视觉SLAM十四讲学习笔记 第7讲 视觉里程计
随机推荐
LeetCode每日一题(858. Mirror Reflection)
广告电商系统开发
使用COLMAP初步三维重建
Opencv学习之ORB特征提取和匹配
Control CD-ROM with VbScript
密码设置十准则
Yolov5 测试和训练自己的数据集
Flutter教程大全合集(2022年版)
炫酷又高效的数据可视化大屏,做起来真的没那么难!丨极客星球
倒计时 3 天|一起看云原生 Meetup 的六大议题
Access Huawei game anti-addiction, click the anti-addiction pop-up window, the game crashes
聚焦数据来源、数据质量和模型性能构建小微企业信用画像
博尔赫斯-诗中的经典语段
用VbScript控制光驱
yolo系列的head模块
小程序在政务服务平台建设中如何发挥价值
程序猿七夕礼物-如何30分钟给女友快速搭建专属语聊房
How to develop small program plug-ins to achieve profitability?
Cows 树状数组
年轻人为什么不喜欢买蒙牛、伊利了?