299. Bulls and Cows

来源:互联网 发布:民族政策知乎 编辑:程序博客网 时间:2024/06/16 16:18

这道题是说给出一个用字符串表示的数,另一个人猜数,bull表示猜对了的位数,cows表示数对但是没放对位置的位的个数。给一个secret和guess,找出bull和cows。

这道题需要用到哈希表,遍历guess一遍就可以得到bull。如果secret[i] != guess[i],那么把这一位先放到map里,最后再遍历一遍secret,secret[i]在map里找到的话就在map里-1,cows++;

class Solution {public:    string getHint(string secret, string guess) {        unordered_map<int, int> m;        int A = 0, B = 0;        for(int i = 0; i < guess.size(); ++i){            if(secret[i] == guess[i])   A++;            else{                m[guess[i]]++;            }        }        for(int i = 0; i < secret.size(); ++i){            if(secret[i] != guess[i] && m[secret[i]]){                m[secret[i]]--;                B++;            }        }        return to_string(A) + "A" + to_string(B) + "B";    }};