題目: LeetCode - 299. Bulls and Cows

題目說明

給兩個字串,一個代表猜測的密碼一個代表正確密碼,若是位置及數字都正確則 A 增加,若是數字正確而位置錯誤則 B 增加。

解題思路

使用一個陣列紀錄正確密碼的個數,接著遍歷兩個字串,先判斷 guess 當前的字元是否存在陣列中,接著判斷 guess 的當前字元是否等於 secret 的當前字元即可。

參考解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
string getHint(string secret, string guess)
{
int A{}, B{}, n = secret.length();
vector<int> v(10);
for(auto& c : secret) ++v[c - '0'];
for(int i{}; i < n; ++i)
{
if(v[guess[i] - '0']) --v[guess[i] - '0'], ++B;
if(secret[i] == guess[i]) ++A, --B;
}
return to_string(A) + "A" + to_string(B) + "B";
}
};