299. 猜数字游戏
思路:对于相同位置上,数字相同的话,就是公牛数ans++;如果不同,我们就分别用两个哈希表来记录两个字符串没有成功匹配的数字数量。最后,通过遍历哈希表,保存数量最少的一边即可。
class Solution {
public:
string getHint(string secret, string guess) {
int a[2][10];
memset(a,0,sizeof a);
int ans=0;
for(int i=0;i<secret.size();i++){
if(secret[i]==guess[i]) ans++;
else{
a[0][secret[i]-'0']++;
a[1][guess[i]-'0']++;
}
}
int res=0;
for(int i=0;i<10;i++){
res+=min(a[0][i],a[1][i]);
}
string s=to_string(ans)+"A"+to_string(res)+"B";
return s;
}
};