盛世游戏网

盛世游戏网

游戏299=多少

59

游戏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”的数量,最终输出它们的和。