Longest Substring Without Repeating Characters

来源:互联网 发布:淘宝农村事业部 编辑:程序博客网 时间:2024/04/28 05:35
    public int lengthOfLongestSubstring(String s) {        // Start typing your Java solution below        // DO NOT write main() function        if(s == null || s.length() == 0) return 0;        HashMap<Character, Integer> map = new HashMap<Character, Integer>();        int start = 0;        int result = 0;        for(int i = 0; i < s.length(); i++) {            if(map.containsKey(s.charAt(i)) && map.get(s.charAt(i)) >= start) {//pay attention here                result = Math.max(result, i - start);                start = map.get(s.charAt(i)) + 1;            }            map.put(s.charAt(i), i);        }        return Math.max(s.length() - start, result);//pay attention here    }    public int lengthOfLongestSubstring(String s) {        // Start typing your Java solution below        // DO NOT write main() function        if(s == null || s.length() == 0) return 0;        int result = 0;        int start = 0;        int[] index = new int[256];        for(int i = 0 ; i < 256; i++) index[i] = -1;         for(int i = 0; i < s.length(); i++) {            if(index[s.charAt(i)] != -1 && index[s.charAt(i)] >= start) {                result = Math.max(result, i - start);                start = index[s.charAt(i)] + 1;            }            index[s.charAt(i)] = i;        }        return Math.max(s.length() - start, result);    }