1. 题目
2. 思路
(1) 模拟法+哈希表
- 由于题目给出了字符串仅由数字组成,因此,利用长度为10的数组代替哈希表,存储两个字符串中不相等的字符出现的次数,最后各个字符取较小值即可。
3. 代码
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public String getHint(String secret, String guess) {
int bulls = 0;
int[] count1 = new int[10];
int[] count2 = new int[10];
for (int i = 0; i < secret.length(); i++) {
if (secret.charAt(i) == guess.charAt(i)) {
bulls++;
} else {
count1[secret.charAt(i) - '0']++;
count2[guess.charAt(i) - '0']++;
}
}
int cows = 0;
for (int i = 0; i < 10; i++) {
cows += Math.min(count1[i], count2[i]);
}
return bulls + "A" + cows + "B";
}
}