1.题目描述
给定一个字符串 s ,请你找出其中不含有重复字符的最长字串的长度。

2 思路
可以用两个指针, 滑动窗口的思想来做这道题,即定义两个指针.一个left和一个right
并且用一个set容器,一个length , 一个maxlength来记录,
让right往右走,并且用一个set容器来存储right走过的字符(如果容器里没有这个字符)
right每走一步就让length++, 并且和maxlength比较,如果比maxlength还大,就赋值给maxlength.
如果有这个字符,就让left往右走,找到相同的字符,就length--,并且从容器里删掉这个字符
我们用 pwwkew来举例.
第一步: right走到没有重复的.
即 right的下标在第二个w停下,在次之前,每次都存储到set里面,并且length++ Σmaxlength比较.
第二步 left开始走,如果set里面包含的有,就一直走 并且删除吊left走过的元素,length--
第三步 返回maxlength
三 代码书写
 public int lengthOfLongestSubstring(String s) {
        Set<Character> set = new HashSet();
        int left = 0;
        int right = 0;
        int length = 0;
        int maxLength = 0;
        while (right<s.length()) {
            if (!set.contains(s.charAt(right))) {
                set.add(s.charAt(right));
                length++;
                right++;
                if (length > maxLength) {
                    maxLength = length;
                }
            } else {
                while (set.contains(s.charAt(right))){
                    set.remove(s.charAt(left));
                    left++;
                    length--;
                }
            }
        }
        return maxLength;
    }


















