题目描述:

参考代码:
public int lengthOfLongestSubstring(String s) {
int ans=0;
Map<Character,Integer> map=new HashMap<>();
for (int end = 0,start=0; end <s.length() ; end++) {
char c=s.charAt(end);
if(map.containsKey(c))
start=Math.max(map.get(c),start);
ans=Math.max(ans,end-start+1);
map.put(c,end+1);
}
return ans;
}
public int lengthOfLongestSubstring(String s) {
HashMap<Character,Integer> map=new HashMap<>();
char[] c=s.toCharArray();
int max=0;
int left=0;
if(s.length()<2)
return s.length();
map.put(c[0],0);
for (int i = 1; i < s.length(); i++) {
if(map.containsKey(c[i]))
{
left=Math.max(left,map.get(c[i])+1);
}
map.put(c[i],i);
max=Math.max(max,i-left+1);
}
return max;
}