猜数字游戏

题解方法

  • 模拟

模拟

  • 按位比较,若相同则公牛数量增加,若不同则分别统计词频
  • [0, 9] 数字的词频的最小值总和,为母牛数量

核心代码

按位比较

1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < n; i++) {
char chS = secret.charAt(i);
char chG = guess.charAt(i);
if (chS == chG) {
bull++;
}
else {
cntS[chS - '0']++;
cntG[chG - '0']++;
}
}

最小值总和

1
2
3
for (int i = 0; i < 10; i++) {
cow += Math.min(cntS[i], cntG[i]);
}

题目来源

猜数字游戏