1. 题意
给两个数组,一个是正确答案,一个是猜出的答案;
求猜出的答案中正确位置字符的个数,和错误位置正确字符的位置。
猜数字游戏
2. 题解
直接模拟即可。
当两个串匹配时,公牛数自增;否则分别统计答案串和猜测串中字符。
最后取统计串字符和答案串字符两个中的最小值相加求得母牛数目。
class Solution {
public:string getHint(string secret, string guess) {int bulls = 0;int cows = 0;int s[10] = {0};int g[10] = {0};int cnt = 0;for (char c:secret) {if ( c == guess[cnt]) {bulls++;}else {s[c - '0']++;g[guess[cnt]-'0']++;}++cnt;}for (int i = 0; i < 10; i++) {cows += min(s[i],g[i]);}string ans;ans.append(to_string(bulls));ans.push_back('A');ans.append(to_string(cows));ans.push_back('B');return ans;}
};