游戏299指的是LeetCode上的一道题目,题目编号为299,题目为“猜数字游戏”(Bulls and Cows)。
题目描述
你正在和你的朋友玩猜数字游戏。你写下一个数字让你的朋友猜。每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为“Bulls”),以及有多少位数字猜对了但位置不正确(称为“Cows”)。
示例
假设你写下的数字是 `1807`,而你的朋友猜测的数字是 `7810`:
数字 `1` 在第1位,位置正确,是1头“Bull”。
数字 `8` 在第2位,位置正确,是1头“Bull”。
数字 `0` 在第3位,位置错误,是1头“Cow”。
数字 `7` 在第4位,位置正确,是1头“Bull”。
因此,提示为:2头“Bull”,1头“Cow”。
输入
一个长度为 `n` 的字符串 `secret`,表示你写下的数字。
一个长度为 `n` 的字符串 `guess`,表示朋友的猜测。
输出
一个整数,表示提示的数量,即“Bulls”和“Cows”的总和。
思路
使用哈希表来记录每个数字在 `secret` 和 `guess` 中出现的次数,然后分别统计位置正确和位置错误的数字数量。
代码示例(Python)
```python
def getHint(secret: str, guess: str) -> int:
bulls = cows = 0
secret_count = * 10
guess_count = * 10
for i in range(len(secret)):
if secret[i] == guess[i]:
bulls += 1
else:
secret_count[int(secret[i])] += 1
guess_count[int(guess[i])] += 1
for i in range(10):
cows += min(secret_count[i], guess_count[i])
return bulls + cows
```
总结
游戏299是一道关于猜数字游戏的题目,通过哈希表来统计“Bulls”和“Cows”的数量,最终输出它们的和。