这道题乍一看限制很多,但是可以排除很多不必要的判断:
假设我们记子串s'出现最大次数为,而对任意一个包含s'的子串s''都有
,所以在枚举的时候我们只需要枚举minSize长度的子串:
class Solution:
def maxFreq(self, s: str, maxLetters: int, minSize: int, maxSize: int) -> int:
i = 0
count = dict()
count['default'] = 0
while(i+minSize <= len(s)):
substr = s[i:i+minSize]
if substr in count.keys():
count[substr] += 1
else:
if len(set(substr)) <= maxLetters:
count[substr] = 1
i+=1
return max(count.values())