- 哈希表中 (s[r]) 的计数加一, 同时将指针 (r) 向后移一位
- 不断向后移动 (l),直至区间 ([l,r-1])中 (s[r-1]) 的个数等于1为止;
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int n=s.size();
unordered_map<char,int> mp;
int l=0,r=0;
int res=0;
while(r < n)
{
char c=s[r];
mp[c]++;
r++;
while(mp[c] > 1)
mp[s[l++]]--;
res=max(res,r-l);
}
return res;
}
};