请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

s.length <= 40000
class Solution {
public int lengthOfLongestSubstring(String s) {
int res = 0;
Set<Character> set = new HashSet<>();
for(int l = 0, r = 0; r < s.length(); r++)
{
char c = s.charAt(r);
while (set.contains(c)){
set.remove(s.charAt(l++));
}
set.add(c);
res = Math.max(res, r - l + 1);
}
return res;
}
}