点击打开链接
class Solution {
public:
int helper(string s, int k, int left, int right)
{
int len = right-left+1;
if(len<=0) return 0;
int i=0, j=0;
int maxlen = 0;
vector<int> count(26, 0);
for(i= left; i<=right; i++){
count[s[i]-'a'] +=1;
}
for(i=left, j=left; i<=right; i++){
if(count[s[i]-'a']<k){
maxlen = max(maxlen, helper(s, k, j, i-1));
j = i+1;
}
}
if(j==left) return len;
else return max(maxlen, helper(s, k, j, i-1));
}
int longestSubstring(string s, int k){
return helper(s, k, 0,s.size()-1);
}
};