#include <unordered_map>
#include <string>
 
class Solution {
public:
    bool isAnagram(std::string s, std::string t) {
        if (s.length() != t.length()) {
            return false;
        }
 
        std::unordered_map<char, int> smap;
        std::unordered_map<char, int> tmap;
 
        for (const char& x : s) {
            if (!smap.contains(x)) { smap[x] = 0; }
            smap[x]++;
        }
 
        for (const char& x : t) {
            if (!smap.contains(x)) { return false; }
            if (!tmap.contains(x)) { tmap[x] = 0; }
            tmap[x]++;
        }
 
        return (smap == tmap);
    }
};