1297 子串的最大出現次數

2021-10-04 03:14:05 字數 1203 閱讀 3250

給你乙個字串s,請你返回滿足以下條件且出現次數最大的任意子串的出現次數:

示例 1:

輸入:s = "aababcaab", maxletters = 2, minsize = 3, maxsize = 4輸出:2解釋:子串 "aab" 在原字串**現了 2 次。

它滿足所有的要求:2 個不同的字母,長度為 3 (在 minsize 和 maxsize 範圍內)。

1.關鍵的是maxsize是沒用的,因為最大的子串一定是最小的。。。沒想到,o(len(s)*minsize)

2.如果遍歷minsize到maxsize,o(len(s)*minsize*(maxsize-minsize))

class solution(object):

def maxfreq(self, s, maxletters, minsize, maxsize):

def helper(size):

m={}

for i in range(len(s)-size+1):

if len(set(s[i:i+size]))<=maxletters:

m[s[i:i+size]]=m.get(s[i:i+size],0)+1

return max(m.values()) if m else 0

res = 0

for i in range(minsize,maxsize+1):

res=max(res,helper(i))

return res

class solution(object):

def maxfreq(self, s, maxletters, minsize, maxsize):

m={}

for i in range(len(s)-minsize+1):

if len(set(s[i:i+minsize]))<=maxletters:

m[s[i:i+minsize]]=m.get(s[i:i+minsize],0)+1

return max(m.values()) if m else 0

1297 子串的最大出現次數

題目描述 給你乙個字串 s 請你返回滿足以下條件且出現次數最大的 任意 子串的出現次數 子串中不同字母的數目必須小於等於 maxletters 子串的長度必須大於等於 minsize 且小於等於 maxsize 示例 1 輸入 s aababcaab maxletters 2,minsize 3,m...

1297 子串的最大出現次數

給你乙個字串 s 請你返回滿足以下條件且出現次數最大的 任意 子串的出現次數 子串中不同字母的數目必須小於等於 maxletters 子串的長度必須大於等於 minsize 且小於等於 maxsize 示例 1 輸入 s aababcaab maxletters 2,minsize 3,maxsiz...

LeetCode 1297 子串的最大出現次數

給你乙個字串 s 請你返回滿足以下條件且出現次數最大的 任意 子串的出現次數 示例 1 輸入 s aababcaab maxletters 2,minsize 3,maxsize 4輸出 2 解釋 子串 aab 在原字串 現了 2 次。它滿足所有的要求 2 個不同的字母,長度為 3 在 minsiz...