[LeetCode] Bulls and Cows

This problem seems to be easy at the first glance, especially the problem gives a too much simpler example. Make sure you understand the problem by making more examples or refering to some other material, like the Wikipedia article.

Stefan shares a very simple and elegant solution, which is rewritten below using multiset in C++.

 1 class Solution {
 2 public:
 3     string getHint(string secret, string guess) {
 4         int bull = 0, both = 0, n = secret.length();
 5         for (int i = 0; i < n; i++)
 6             bull += (secret[i] == guess[i]);
 7         for (char c = '0'; c <= '9'; c++)
 8             both += min(count(secret.begin(), secret.end(), c), 
 9                         count(guess.begin(), guess.end(), c));
10         return to_string(bull) + "A" + to_string(both - bull) + "B";
11     }
12 };

 

posted @ 2015-10-31 18:23  jianchao-li  阅读(348)  评论(0编辑  收藏  举报