# LC 3 Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters.

`public int lengthOfLongestSubstring(String s)`

**边界检查** : s 如果是空 返回0

解题思路\
利用HashSet 检测重复字符。用两个指针操作

```java
public int lengthOfLongestSubstring(String s) {
    int i = 0, j = 0, max = 0;
    Set<Character> set = new HashSet<>();

    while (j < s.length()) {
        if (!set.contains(s.charAt(j))) {
            set.add(s.charAt(j++));
            max = Math.max(max, set.size());
        } else {
            set.remove(s.charAt(i++));
        }
    }

    return max;
}
```
