标签:
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 multiset<char> s(secret.begin(), secret.end()), g(guess.begin(), guess.end()); 8 for (char c = ‘0‘; c <= ‘9‘; c++) 9 both += min(s.count(c), g.count(c)); 10 return to_string(bull) + "A" + to_string(both - bull) + "B"; 11 } 12 };
标签:
原文地址:http://www.cnblogs.com/jcliBlogger/p/4925931.html