Medium
Number of Equal Count Substrings — Python
Full explanation · Time O(n) · Space O(1)
# Time: O(26 * n) = O(n)
# Space: O(26) = O(1)
class Solution(object):
def equalCountSubstrings(self, s, count):
"""
:type s: str
:type count: int
:rtype: int
"""
result = 0
for l in xrange(1, min(len(set(s)), len(s)//count)+1):
cnt, equal_cnt = collections.Counter(), 0
for i, c in enumerate(s):
cnt[c] += 1
equal_cnt += (cnt[c] == count)
if i >= count*l:
equal_cnt -= (cnt[s[i-count*l]] == count)
cnt[s[i-count*l]] -= 1
result += (equal_cnt == l)
return result