Skip to content

Commit 2b7b15f

Browse files
committed
add Longest Repeating Character Replacement solution
1 parent ffd3931 commit 2b7b15f

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* [Problem]: [424] Longest Repeating Character Replacement
3+
* (https://leetcode.com/problems/longest-repeating-character-replacement/description/)
4+
*/
5+
function characterReplacement(s: string, k: number): number {
6+
//시간복잡도 O(n)
7+
//공간복잡도 O(n)
8+
let left = 0;
9+
let right = 0;
10+
let result = 0;
11+
let map = new Map<string, number>();
12+
13+
while (right < s.length) {
14+
map.set(s[right], (map.get(s[right]) || 0) + 1);
15+
16+
const maxFreq = Math.max(...Array.from(map.values()));
17+
if (right - left + 1 - maxFreq > k) {
18+
map.set(s[left], map.get(s[left])! - 1);
19+
left++;
20+
}
21+
22+
result = Math.max(result, right - left + 1);
23+
right++;
24+
}
25+
26+
return result;
27+
}

0 commit comments

Comments
 (0)