Solution 1Sliding Window
public int characterReplacement(String s, int k) {
int[] freq = new int[26];
int start = 0, count = 0;
for (int end = 0; end < s.length(); end++) {
freq[s.charAt(end) - 'A']++;
count = Math.max(count, freq[s.charAt(end) - 'A']);
if ( end - start + 1 > count + k ) {
freq[s.charAt(start) - 'A']--;
start++;
}
}
return s.length() - start;
}var characterReplacement = function(s,k) {
let window = {}, i = 0, maxLen = 1;
for (let j=0; j<s.length; j++) {
if (s[j] in window) {
window[s[j]] += 1;
maxLen = Math.max(maxLen, window[s[j]])
} else {
window[s[j]] = 1;
}
if (j-i+1 > maxLen+k) {
window[s[i]] -= 1;
i++;
}
}
return s.length - i
};