解题思路
首先研读题目可以知道,bulls在逐一对比的时候就能够获知,而cows是不确定的,所以我们用两个长度为10的数组记录除了确定是bulls的其他数,一次遍历后再找对应的最小值,加起来就是cows的数量,代码如下:
代码
class Solution {
public:
string getHint(string secret, string guess) {
vector<int> count_s(10);
vector<int> count_g(10);
int bulls = 0, cows = 0;
for(int i = 0; i < secret.length(); i ++) {
if(secret[i] == guess[i]) {
bulls ++;
} else {
count_s[secret[i] - '0'] ++;
count_g[guess[i] - '0'] ++;
}
}
for(int i = 0; i < 10; i ++) {
cows += min(count_s[i], count_g[i]);
}
return to_string(bulls) + 'A' + to_string(cows) + 'B';
}
};