import java.util.*;
public class Solution {
public int lengthOfLongestSubstring (String s) {
int maxLength = 1;
if(s.length()<2){
return s.length();
}
int left = 0;
int right = 1;
HashSet<Character> set = new HashSet<>();
set.add(s.charAt(left));
while(right<s.length()){
if(!set.contains(s.charAt(right))){
set.add(s.charAt(right));
maxLength = Math.max(maxLength,set.size());
}else{
while(left<right && s.charAt(left)!=s.charAt(right)){
set.remove(s.charAt(left));
left++;
}
left++;
}
right++;
}
return maxLength;
}
}