找到最长的窗口,这个窗口可满足替换k次所有字符相同。这个窗口满足尺取特性。
class Solution {
public:
int cnt[26];
int characterReplacement(string s, int k) {
int n=s.size(),ans=0;
int i=0,j=0,mx=0;
while(j<n){
while(j<n&&(j-i+1-max(mx,cnt[s[j]-'A']+1))<=k) mx=max(mx,++cnt[s[j++]-'A']);
ans=max(ans,j-i),--cnt[s[i++]-'A'];
}
return ans;
}
};