class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap<Character, Integer> map = new HashMap<>();
int left = 0, max = 0;
for(int i=0; i<s.length(); ++i){
if(map.containsKey(s.charAt(i))){
left = Math.max(map.get(s.charAt(i)) + 1,left);
}
map.put(s.charAt(i),i);
max = Math.max(max, i-left+1);
}
return max;
}
}