题目
给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。
示例 1:
**输入:**s = “aaabb”, k = 3
**输出:**3
**解释:**最长子串为 “aaa” ,其中 ‘a’ 重复了 3 次。
示例 2:
**输入:**s = “ababbc”, k = 2
**输出:**5
**解释:**最长子串为 “ababb” ,其中 ‘a’ 重复了 2 次, ‘b’ 重复了 3 次。
提示:
1 <= <= 104
s 仅由小写英文字母组成
1 <= k <= 105
题解
1 | class Solution(object): |
因为字符为小写英文字母,所以遍历26种可能。
如果字符串长度小于k,则终止递归。
如果当前子串中的该字符数量小于k,那么按该字符切分(split)后,最长的一段的长度就是最大值。