Skip to content

Commit 69fb002

Browse files
authored
Update 424-longest-repeating-character-replacement.js
1 parent 26c177d commit 69fb002

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

424-longest-repeating-character-replacement.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,27 @@ const characterReplacement = function(s, k) {
2323

2424
console.log(characterReplacement("ABAB", 2));
2525
console.log(characterReplacement("AABABBA", 1));
26+
27+
28+
// another
29+
30+
/**
31+
* @param {string} s
32+
* @param {number} k
33+
* @return {number}
34+
*/
35+
const characterReplacement = function(s, k) {
36+
const freq = Array(26).fill(0), n = s.length, A = 'A'.charCodeAt(0)
37+
let res = 0, l = 0, r = 0, maxFreq = 0
38+
while(r < n) {
39+
maxFreq = Math.max(maxFreq, ++freq[s.charCodeAt(r) - A])
40+
if(r - l + 1 - maxFreq > k) {
41+
freq[s.charCodeAt(l) - A]--
42+
l++
43+
}
44+
res = Math.max(res, r - l + 1)
45+
r++
46+
}
47+
48+
return res
49+
};

0 commit comments

Comments
 (0)