class Solution:
def longestSubstring(self, s: str, k: int) -> int:
#如果字符串的长度是小于k的直接返回0
if len(s)<k:
return 0
#遍历该字符串
for c in set(s):
#如果该字符的出现次数小于k,那么一定不能在子字符串中出现
#所以根据该字符串将s切分,然后遍历每个子串,再去找最长子串的长度
if s.count(c)<k:
return max(self.longestSubstring(t,k) for t in s.split(c))
#如果字符出现次数都大于等于k直接返回字符串的长度即可
return len(s)
- 先观察字符串和K的长度进行判断
- 遍历字符串中的字符,如果字符出现的次数是小于k,那么就将字符串拆分为子串,然后递归的求最长子串的长度