首页 > 代码库 > 3. Longest Substring Without Repeating Characters

3. Longest Substring Without Repeating Characters

    public int lengthOfLongestSubstring(String s) {        if(s == null || s.length() == 0) return 0;        char[] target = s.toCharArray();        int tail, head;        tail = 0;        Map<Character, Integer> map = new HashMap<Character, Integer>();        map.put(target[0], 0);        int maxSubstringNum = map.size();        for(head = 1; head < s.length(); head++) {            if(map.containsKey(target[head])) {                int tmp = map.get(target[head]);                for(int i = tail; i <= tmp; i++) {                    map.remove(target[i]);                }                tail = tmp + 1;                map.put(target[head], head);            }            else {                map.put(target[head], head);            }            if(map.size() > maxSubstringNum) {                maxSubstringNum = map.size();            }        }        return maxSubstringNum;    }

 

3. Longest Substring Without Repeating Characters