力扣-299题 猜数字游戏(C++)- 哈希

题目链接: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;
    }
};

おすすめ

転載: blog.csdn.net/qq_40467670/article/details/121215786