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

395. Longest Substring with At Least K Repeating Characters

时间:2018-10-31 12:28:58      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:leetcode   span   new   max   序列   -o   problems   false   OLE   

https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/discuss/87739/Java-Strict-O(N)-Two-Pointer-Solution

window分别为1-26个unique的字母,找出为这个长度的字母的 其中至少有K repeating ones的最长子序列,取最大值

 

 

 1 class Solution {
 2     public int longestSubstring(String s, int k) {
 3         if(s.length() < k) return 0;
 4         int max = 0;
 5         for(int i = 0; i < 26; i++){
 6             int[] arr = new int[26];
 7             int unique = 0;
 8             int lo = 0, hi = 0;
 9             while(hi < s.length()){
10                 boolean valid = true;
11                 if(arr[s.charAt(hi) - ‘a‘]++ == 0) unique++;
12                 hi++;
13                 while(unique > i){  //搞到unique == i
14                     if(arr[s.charAt(lo++) - ‘a‘]-- == 1) unique--;
15                 }
16                 for(int j = 0; j < 26; j++){   //看看存不存在出现但是不到k次数的字母
17                     if(arr[j] > 0 && arr[j] < k){  //注意arr[j] > 0 因为要出现
18                         valid = false;
19                         break;
20                     }
21                 }
22                 if(unique == i && valid){ 
23                     max = Math.max(max, hi-lo); //hi-lo
24                 }
25                 
26             }   
27         }
28         return max;   
29     }
30 }

 

395. Longest Substring with At Least K Repeating Characters

标签:leetcode   span   new   max   序列   -o   problems   false   OLE   

原文地址:https://www.cnblogs.com/goPanama/p/9882103.html

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