class Solution {
public:
int a[26];
int longestSubstringWithoutDuplication(string s) {
int l=0,ans=0;
if(s.size()==1) return 1;
for(int i=0;i<s.size();i++)
{
a[s[i]-'a']++;
while(l<=i&&a[s[i]-'a']>1) a[s[l]-'a']--,l++;
ans=max(ans,i-l+1);
}
return ans;
}
};