அல்கோரிதம்window boundary update
Window Boundary Update — எல்லை புதுப்பிப்பு
TT
Testlaa Team
May 14, 2026•1 min read
எல்லை புதுப்பிப்பு — R வரும் உறுப்பு +, L செல்லும் உறுப்பு -; எல்லை தாவல் போது சோம்பேறி புதுப்பிப்பு.
உண்மை உலகில் இது ஏன் முக்கியம்?
கிடங்கு வாசல் — இடது வண்டி வெளியேறு, வலது புதியது; ஆவணம் எல்லை புதுப்பிப்பு.
மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)
add(a[R]); while bad: remove(a[L]); L++. தாவல் — இடைப்பட்ட indexகள் நீக்கம் சில சமயம் தவிர்க்கலாம் — நிரூபணத்துடன்.
Pythonில் முயற்சி செய்வோம்
def apply_boundary_ops(s: str) -> int:
freq, L, uniq = {}, 0, 0
def add(ch):
nonlocal uniq
freq[ch] = freq.get(ch, 0) + 1
if freq[ch] == 1:
uniq += 1
def remove(ch):
nonlocal uniq
freq[ch] -= 1
if freq[ch] == 0:
uniq -= 1
best = 0
for R, ch in enumerate(s):
add(ch)
while uniq > 2:
remove(s[L])
L += 1
best = max(best, R - L + 1)
return best
print(apply_boundary_ops("ccaabbb"))
அடிக்கடி நேரும் தவறுகள்
- ஒரு சுற்றில்
Rஇரட்டை புதுப்பிப்பு. - நகல் எழுத்து — தவறான index நீக்கம்.
முக்கியச் சுருக்கக் குறிப்புகள்
add/removeசமச்சீர் API — சோதனை எளிது.
Tags:
Sliding windowPythonமாணவர்கள்
