码迷,mamicode.com
首页 > 其他好文 > 详细

159 Longest Substring with At Most Two Distinct Characters

时间:2017-07-05 22:56:46      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:hash   之间   long   substr   tin   ini   min   mini   通过   

 这两题有一个 trick Minimum Window Substring 非常
像,就是维护一个 "curCount" 代表目前 (i,j) 之间 match
的数量,而通过 hash[] 的正负充当计数器的作用

public int lengthOfLongestSubstringTwoDistinct(String s) {
    int maxSize = 0;
    int j = 0;
    int[] hash = new int[256];
    int distinctCount = 0;
    for(int i = 0; i < s.length(); i++){
        while(j < s.length()){
            if(distinctCount == 2 && hash[s.charAt(j)] == 0)
                break;
            if(hash[s.charAt(j)] == 0) distinctCount ++;
            hash[s.charAt(j++)]++;
        } 
        if(j - i > maxSize){
            maxSize = j - i;
        } 
        hash[s.charAt(i)]--;
        if(hash[s.charAt(i)] == 0) distinctCount --;
    }
    return maxSize;
}            

  

159 Longest Substring with At Most Two Distinct Characters

标签:hash   之间   long   substr   tin   ini   min   mini   通过   

原文地址:http://www.cnblogs.com/apanda009/p/7123655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!