340. Longest Substring with At Most K Distinct Characters - cocoder39/coco39_LC GitHub Wiki
340. Longest Substring with At Most K Distinct Characters
[left, right) is the window
class Solution:
def lengthOfLongestSubstringKDistinct(self, s: str, k: int) -> int:
counters = {}
left, right = 0, 0
res = 0
while right < len(s):
if len(counters) <= k:
ch = s[right]
if ch not in counters:
counters[ch] = 0
counters[ch] += 1
right += 1
else:
ch = s[left]
counters[ch] -= 1
if counters[ch] == 0:
del counters[ch]
left += 1
if len(counters) <= k:
res = max(res, right - left)
return res