class Solution {
public:
int lengthOfLongestSubstring(string s) {
int n = s.size();
map<int, int> mp;
int ans = 0;
int i = 0, j = 0;
while(i < n && j < n) {
if(mp[s[j]] == 0) {
mp[s[j]] ++;
ans = max(ans, j - i + 1);
++ j;
}else {
mp[s[i]] --;
++ i;
}
}
return ans;
}
};