diff options
| author | crupest <crupest@outlook.com> | 2020-08-29 00:02:55 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2020-08-29 00:02:55 +0800 | 
| commit | be903c890e7ac39432c4eedfe5a797a91e9057b4 (patch) | |
| tree | fb62051f4371ed33f367e62886ba29177b34621a /works/solutions | |
| parent | 3fe957fb772e60f8e04fb586dedae23ba71a938e (diff) | |
| download | crupest-be903c890e7ac39432c4eedfe5a797a91e9057b4.tar.gz crupest-be903c890e7ac39432c4eedfe5a797a91e9057b4.tar.bz2 crupest-be903c890e7ac39432c4eedfe5a797a91e9057b4.zip | |
import(solutions): Add problem 299 .
Diffstat (limited to 'works/solutions')
| -rw-r--r-- | works/solutions/cpp/299.cpp | 44 | 
1 files changed, 44 insertions, 0 deletions
| diff --git a/works/solutions/cpp/299.cpp b/works/solutions/cpp/299.cpp new file mode 100644 index 0000000..21c09b6 --- /dev/null +++ b/works/solutions/cpp/299.cpp @@ -0,0 +1,44 @@ +#include <string>
 +
 +using std::string;
 +
 +class Solution
 +{
 +public:
 +    string getHint(string secret, string guess)
 +    {
 +        int a = 0;
 +
 +        int secret_digit_count[10] = {0};
 +
 +        auto secret_iter = secret.cbegin();
 +        auto guess_iter = guess.cbegin();
 +
 +        while (secret_iter != secret.cend())
 +        {
 +            auto secret_digit = *secret_iter;
 +            auto guess_digit = *guess_iter;
 +
 +            secret_digit_count[secret_digit - '0']++;
 +
 +            if (secret_digit == guess_digit)
 +                a++;
 +
 +            ++secret_iter;
 +            ++guess_iter;
 +        }
 +
 +        int b = 0;
 +        for (auto c : guess)
 +        {
 +            auto digit = c - '0';
 +            if (secret_digit_count[digit])
 +            {
 +                b++;
 +                secret_digit_count[digit]--;
 +            }
 +        }
 +
 +        return std::to_string(a) + "A" + std::to_string(b - a) + "B";
 +    }
 +};
 | 
