class Solution {
public int lengthOfLongestSubstring(String s) {
int r=0;
char[] c=s.toCharArray();
int ans=0;
HashSet<Character> set=new HashSet();
for(int i=0;i<c.length;i++){
while(r<c.length&&!set.contains(c[r])){
set.add(c[r]);
r++;
}
set.remove(c[i]);
ans=Math.max(ans,r-i);
// 优化后反而时间增加了,用例不同分情况
// if(r==c.length){
// break;
// }
}
return ans;
}
}