维护一个滑动窗口,有左边界和右边界。这个题是让求不重复的最长字串,所以就是求以每个字母为左边界,看右边界不重复的最右边。左边界肯定是逐次增大的,右边界也是,因为在l r内是不重复的,下次看l+1 和 r 再往后到rk(往后直到找到下一个重复的),那在l+1和r之间肯定也是无重复的,因为前面l ~ r是无重复的,所以这里也是。
那就左边界依次右移,然后右边界根据有没有重复的去右移,每次右边界定下来之后,取当前左右边界的长度,然后再取一个最大值即可。
Set<Character> set = new HashSet<>();