提交代码
class Solution {
public int longestSubstring(String s, int k) {
if(s==null) return 0;
int res=0, curMax=0;
for(int i=0;i<=s.length()-k;i++) {
curMax = checkSubstring(i,s, k);
res = curMax>res?curMax:res;
if(res>s.length()-i) break;
}
return res;
}
private int checkSubstring(int start, String s, int k) {
int res=0;
int[] letters = new int[26];
Arrays.fill(letters, 0);
for(int i=start;i<s.length();i++) {
letters[s.charAt(i)-'a'] ++;
if(letters[s.charAt(i)-'a']>=k) {
res=satiate(letters, k)?i-start+1:res;
}
}
return res;
}
private boolean satiate(int[] nums, int minNum) {
for(int n: nums)
if(n!=0&&n<minNum) return false;
return true;
}
}
运行结果
