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 };

 

posted @ 2016-03-20 20:34  co0oder  阅读(163)  评论(0编辑  收藏  举报