给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

public int lengthOfLongestSubstring(String s) {
        if(s.length()==0||s==null){
            return 0;
        }
        int len=0;
        HashSet<Character> hashSet = new HashSet<Character>();
        for(int i=0,j=0;i<s.length();i++){
            /*if(hashSet.contains(s.charAt(i))){
                 hashSet.remove(s.charAt(j++));
                 hashSet.add(s.charAt(i));
            }else{
                hashSet.add(s.charAt(i));
                len = Math.max(hashSet.size(),len);
            }*/
            while(hashSet.contains(s.charAt(i))){
                hashSet.remove(s.charAt(j++));
                //hashSet.add(s.charAt(i));
            }
            hashSet.add(s.charAt(i));
            len = Math.max(hashSet.size(),len);
        }
        return len;
    }

猜你喜欢

转载自www.cnblogs.com/q-1993/p/10752871.html