LeetCode 299. Bulls and Cows
secret和guess按位读入,如果相等bull就加1,不相等就在各自统计不同数字出现次数的数组里加1(s_map[i]指secret里数字i出现的次数)。最后s_map和g_map存的是各自string中位置不等的各数值出现的次数,cow等于两个数组中相同位置的最小数。
1 class Solution { 2 public: 3 string getHint(string secret, string guess) { 4 int s_map[10] = {0}, g_map[10] = {0}; 5 int bull = 0, cow = 0; 6 7 for(int i = 0; i < secret.length(); ++i){ 8 if(secret[i] == guess[i]) ++bull; 9 else{ 10 ++s_map[secret[i] - '0']; 11 ++g_map[guess[i] - '0']; 12 } 13 } 14 15 for(int i = 0; i < 10; ++i){ 16 cow += min(s_map[i], g_map[i]); 17 } 18 19 20 string res = ""; 21 res = to_string(bull) + "A" + to_string(cow) + "B"; 22 return res; 23 } 24 };