class Solution {
public:
int lengthOfLongestSubstring(string s) {
int mp[500];
memset(mp, -1, sizeof(mp));
int len = 0;
int ans = 0;
int beg = 0;
int end = 0;
for(int i = 0; i < s.size(); ++i){
if(mp[s[i]] == -1){
mp[s[i]] = i;
end = i;
mp[s[i]] = i;
len ++;
ans = max(ans, len);
}
else{
if(mp[s[i]] >= beg){
beg = mp[s[i]] + 1;
mp[s[i]] = i;
end++;
len = end - beg + 1;
ans = max(ans, len);
}
else{
len++;
ans = max(ans, len);
end++;
mp[s[i]] = i;
}
}
}
return ans;
}
};