classSolution { public: intmaxFreq(string s, int maxLetters, int minSize, int maxSize){ int res = 0; for (int n = size(s), len = minSize; len <= maxSize; ++len) { unordered_map<string, int> f; unordered_map<char, int> m; for (int l = 0, r = 0; r < n; ++r) { ++m[s[r]]; if (r >= len) { if (--m[s[l]] == 0) { m.erase(s[l]); } ++l; } if (r >= len - 1 && size(m) <= maxLetters) { res = max(res, ++f[s.substr(l, len)]); } } } return res; } };