知识点
滑动窗口
思路
首先需要维护一个大小为k的滑动窗口,并记录窗口中的字符。
之后每次计算在t中出现的字符的总字数并更新答案即可
时间复杂度
AC Code (C++)
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param k int整型 * @param t string字符串 * @return int整型 */ int maxCount(string s, int k, string t) { vector<int> cnt(26, 0); int res = 0; for (int i = 0; i < s.size(); i ++) { cnt[s[i] - 'a'] += 1; if (i >= k) cnt[s[i - k] - 'a'] -= 1; if (i >= k - 1) { int sum = 0; for (auto x : t) sum += cnt[x - 'a']; res = max(res, sum); } } return res; } };