#include #include #include class Solution { using freq_t = std::array; freq_t freqs(const std::string &word) { freq_t f{0}; for (auto c : word) { f[c - 'a']++; } return f; } int mask(const freq_t &f) { int m = 0; for (auto c : f) { m = (m << 1) | (c > 0); } return m; } public: bool closeStrings(std::string word1, std::string word2) { auto f1 = freqs(word1); auto m1 = mask(f1); std::sort(f1.begin(), f1.end()); auto f2 = freqs(word2); auto m2 = mask(f2); std::sort(f2.begin(), f2.end()); return m1 == m2 && f1 == f2; } };