[
sliding window
two pointers
]
Leetcode 1100 Find K-Length Substrings With No Repeated Characters
Problem statement
https://leetcode.com/problems/find-k-length-substrings-with-no-repeated-characters/
Solution
The idea is to use sliding window of length K
, where we calculate counter of elements inside.
Complexity
It is O(n)
for time and O(K)
for space.
Code
class Solution:
def numKLenSubstrNoRepeats(self, S, K):
cnt, ans, n = Counter(), 0, len(S)
for i, c in enumerate(S):
cnt[c] += 1
if i >= K:
old = S[i - K]
if cnt[old] == 1: cnt.pop(old)
if cnt[old] > 1: cnt[old] -= 1
if len(cnt) == K:
ans += 1
return ans