题目链接:https://leetcode-cn.com/problems/bulls-and-cows/
题目如下:
class Solution {
public:
string getHint(string secret, string guess) {
string result="";
unordered_map<int,int> umap;//记录secret中的元素及其数量
unordered_set<int> uset;//用于记录正确的位置
int count_1=0,count_2=0;
for(int i=0;i<secret.size();i++) umap[secret[i]]++;
for(int i=0;i<secret.size();i++){//两个string长度相等
if(secret[i]==guess[i]){
count_1++;//计数
umap[guess[i]]--;//排除掉一个元素之后,需要减1
uset.insert(i);//记录已经出现过的位置
}
}
for(int i=0;i<guess.size();i++){//如果guess中的元素在umap中有,且当前的位置不是被排除的位置,则有用
if(umap[guess[i]]!=0&&uset.count(i)==0){count_2++;umap[guess[i]]--;}
}
result=to_string(count_1)+"A"+to_string(count_2)+"B";
return result;
}
};