题解 | #固定字符出现最大次数# 滑动窗口
固定字符出现最大次数
https://www.nowcoder.com/practice/73cc3e22a6ea4d00846f53384e4a6915
知识点
滑动窗口
思路
首先需要维护一个大小为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;
}
};
查看19道真题和解析