LeetCode 1297 - Maximum Number of Occurrences of a Substring (Medium)
Given a string s, return the maximum number of ocurrences of any substring under the following rules:
- The number of unique characters in the substring must be less than or equal to
maxLetters. - The substring size must be between
minSizeandmaxSizeinclusive.
Example 1:
Input: s = "aababcaab", maxLetters = 2, minSize = 3, maxSize = 4 Output: 2 Explanation: Substring "aab" has 2 ocurrences in the original string. It satisfies the conditions, 2 unique letters and size 3 (between minSize and maxSize).
Example 2:
Input: s = "aaaa", maxLetters = 1, minSize = 3, maxSize = 3 Output: 2 Explanation: Substring "aaa" occur 2 times in the string. It can overlap.
Example 3:
Input: s = "aabcabcab", maxLetters = 2, minSize = 2, maxSize = 3 Output: 3
Example 4:
Input: s = "abcde", maxLetters = 2, minSize = 3, maxSize = 3 Output: 0
Constraints:
1 <= s.length <= 10^51 <= maxLetters <= 261 <= minSize <= maxSize <= min(26, s.length)sonly contains lowercase English letters.
方法:暴力找出所有可能的substring
要注意最后的return要加上[0]。max需要至少两个数值。以及在count时候,取i的范围是range(len(s)-minSize+1)
time complexity:O(minSize*n) space:O(minSize*n)
class Solution: def maxFreq(self, s: str, maxLetters: int, minSize: int, maxSize: int) -> int: count = collections.Counter(s[i:i + minSize] for i in range(len(s) - minSize +1)) print(count) return max([count[w] for w in count if len(set(w)) <= maxLetters] + [0])
浙公网安备 33010602011771号