3. Longest Substring Without Repeating Characters

class Solution {
    public int lengthOfLongestSubstring(String s) {
        Map<Character, Integer> map=new HashMap<Character, Integer>();
        int maxlen=0;
        for(int j=0,i=0;i<s.length();i++)
        {
            char c=s.charAt(i);
            if(map.containsKey(c)&&j<=map.get(c))
            {
                maxlen=Math.max(maxlen, i-j);
                j=map.get(c)+1;
                map.put(c, i);
            }
            else if(i==s.length()-1)
                maxlen=Math.max(maxlen, i-j+1);
                
            map.put(c, i);
        }
        return maxlen;
    }
}

 

posted @ 2017-09-21 05:52  Weiyu Wang  阅读(100)  评论(0编辑  收藏  举报