intcountLength(){ int max = -1, min = INT_MAX; for(auto it = mp.begin(); it != mp.end(); it++){ if(it->second.lastPos > max) max = it->second.lastPos; if(it->second.lastPos < min) min = it->second.lastPos; } updateFront(min); return max - min + 1; }
intmain(){ for(int i = 0; i < 3; i++){ Record r; r.isAppear = false; mp[charset[i]] = r; } front = 0, rear = 0; minLength = INT_MAX;
for(; rear < str.length(); rear++){ if(mp.find(str[rear]) != mp.end()){ mp[str[rear]].isAppear = true; mp[str[rear]].lastPos = rear; if(isValid()){ int len = countLength(); minLength = len < minLength ? len : minLength; } } } printf("minLength = %dn", minLength); return0; }
近期评论