首页 > 其他 > 详细

3. Longest Substring Without Repeating Characters

时间:2016-04-10 09:06:45      阅读:224      评论:0      收藏:0      [点我收藏+]
/*
     * 3. Longest Substring Without Repeating Characters 
     * 2016-4-10 by Mingyang
     * 这里用Hashmap来存每一个出现的字符的位置,并且设置一个start来记录长度
     * 每次如果遇到了重复,如果重复的前面那个出现在了start以后,我们需要更新start,
     * 如果出现在了start以前,我们就不需要更新
     * 比图case abba,出现第三个a的时候不需要把start变为第一个a的下一个
     * 另外,start<=map.get(tem)是小于等于,省去等于就过不去aa这个case
     */
    public static int lengthOfLongestSubstring(String s) {
        int len=s.length();
        if(s==null||len==0)
          return 0;
        int res=0;
        int start=0;
        HashMap<Character,Integer> map=new HashMap<Character,Integer>();
        for(int i=0;i<len;i++){
            char tem=s.charAt(i);
            if(map.containsKey(tem)){
                if(start<=map.get(tem)){//刚开始没加,有些情况不用更新
                  start=map.get(tem)+1;
                }
                map.put(tem,i);
            }else{
               map.put(tem,i); 
            }
            res=Math.max(i-start+1,res);
        }
        return res;
    }

 

3. Longest Substring Without Repeating Characters

原文:http://www.cnblogs.com/zmyvszk/p/5373339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!