题干解读:判断两个字符串中每个字母出现的次数是否相同.

思路:先遍历每一个字符串,使用哈希表来记录出现的字符,以及他出现的次数,如果表中没有这个字符,那么就添加这个键,同时将值置1,如果有,则值加一。

最后遍历哈希表的键值对,检查他们同一键所对应的值是否相等,如果不相等则返回-1;等则将每个字符出现的次数加到ans上。

最后return出来.

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param c string字符串 
     * @return int整型
     */
    int isCongruent(string s, string c) {
        unordered_map<char,int> c1;
        unordered_map<char,int> c2;
        for(char i:s){
            if(c1.count(i)){
                c1[i]++;
            }else{
                c1.emplace(i,1);
            }
        }
        for(char i:c){
            if(c2.count(i)){
                c2[i]++;
            }else{
                c2.emplace(i,1);
            }
        }
        int ans=0;
        for(auto i = c1.begin();i!=c1.end();i++){
            if(c1[i->first] != c2[i->first]){
                return -1;
            }else{
                ans+=c1[i->first];
            }
            
        }
        return ans;

    }
};