华为OD机试真题精讲:猜数字(Python/Java/C++多语言实现)
一、题目描述(2025B卷高频100分题)
小华为了和朋友玩猜数字游戏,设计了一套规则:给定一个目标数字target(正整数)和一个猜测数字guess(正整数),需要计算两个数字的「匹配得分」,得分规则如下:
- 位置正确且数字相同(A):统计两个数字对应位置上数字相同的个数,记为
A; - 数字存在但位置错误(B):统计两个数字中存在但位置不同的相同数字个数(需排除已计入A的数字),记为
B; - 最终得分格式为
xAyB(如1A2B表示1个位置正确且数字相同,2个数字存在但位置错误)。
关键约束
- 两个数字的位数完全相同,且位数范围
1 ≤ len ≤ 10^5; - 数字仅包含
0-9的字符,无前置零(如目标数字为123,则猜测数字不会是012); - 时间限制1秒,空间限制256MB;
- 需处理超大位数场景(如10^5位数字),避免超时或内存溢出。