Longest Repeating Character Replacement
An interactive, step-by-step visualisation of Longest Repeating Character Replacement.
- Category
- Sliding Window
- Time complexity
- O(n)
- Space complexity
- O(Σ)
Pseudocode
expand right, track frequency of each char in window if (windowLen - maxFreq) > k: shrink from left track the longest valid window seen
Reference implementation
count = {}; lo = 0; max_freq = 0; best = 0
for hi, ch in enumerate(s):
count[ch] = count.get(ch, 0) + 1
max_freq = max(max_freq, count[ch])
if (hi - lo + 1) - max_freq > k:
count[s[lo]] -= 1; lo += 1
best = max(best, hi - lo + 1)
Open the interactive Longest Repeating Character Replacement visualisation →