longest substrinct with at most k distinct characters

🏠

https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/

Credit: lenchen1112

 1 import collections
 2 
 3 class Solution:
 4     def lengthOfLongestSubstringKDistinct(self, s: str, k: int) -> int:
 5         i, max_len, index_map = 0, 0, collections.OrderedDict()
 6         for j, c in enumerate(s, 1):
 7             index_map[c] = j
 8             index_map.move_to_end(c)
 9             if len(index_map) > k:
10                 _, i = index_map.popitem(last=False)
11             max_len = max(max_len, j - i)
12         return max_len
13 
14 print(Solution().lengthOfLongestSubstringKDistinct("a", 2))