அல்கோரிதம்expansion
Window expansion — valid region வளர்த்தல்
TT
Testlaa Team
May 14, 2026•1 min read
Expansion: condition வரை window வளர்த்து, பிறகு மறுமுனையில் சுருக்கம் (sliding window).
Try this in Python
def max_len_substring_k_distinct(s: str, k: int) -> int:
from collections import Counter
left = 0
best = 0
cnt = Counter()
for right, ch in enumerate(s):
cnt[ch] += 1
while len(cnt) > k:
cnt[s[left]] -= 1
if cnt[s[left]] == 0:
del cnt[s[left]]
left += 1
best = max(best, right - left + 1)
return best
print(max_len_substring_k_distinct("eceba", 2))
Key takeaways
rightவிரிவு, invalid வரைleftசுருக்கம்.- Frequency map.
- Invariant: update போது valid.
Tags:
Two pointersPythonமாணவர்கள்
