[
two pointers
sliding window
hash table
recursion
]
BinarySearch 0628 Longest Substring with Character Count of at Least K
Problem statement
https://binarysearch.com/problems/Longest-Substring-with-Character-Count-of-at-Least-K/
Solution
Equal to Leetcode 0395. Longest Substring with At Least K Repeating Characters, but we need to use more efficient algorithm. If we have all frequencies more than k
, we can take all string. If not, we can split string into parts and use recursion.
Complexity
It is still O(26n)
, but it works quite fast.
Code
class Solution:
def solve(self, s, k):
for c in set(s):
if s.count(c) < k:
return max(self.solve(t, k) for t in s.split(c))
return len(s)