Longest Substring with At Least K Repeating Characters
Find the length of the longest substring T of a given string (consists of lowercase letters only) such that every character in T appears no less than k times.
Example
Example 1:
Example 2:
Note
Divided and Conquer
核心点是:要求的是substring,因此,如果发现一个string中间有一个char是小于k次的,那么最长的substring只可能是这个char左右两边的两个substring
第一步,统计当前string中每个字符出现的次数,用少于k次的字符作为分隔符,把string分割成几个substring,只有这些substring才有可能是满足条件的substring 第二步,recurse on substrings,找到结果中最大的一个即可,注意当substring数组只有一个元素的时候,直接return其长度,作为一个出口。否则会爆栈。 终止条件:substring长度已经小于k,substring已空,或 k<=1的时候都可以直接返回确定值了。
Code
Last updated