class Solution: def hasAllCodes(self, s: str, k: int) -> bool: num_perms = math.pow(2, k) substrings_of_len_k = len(s) - k + 1 if substrings_of_len_k < num_perms: return False perms = set() for i in range(k, len(s)+1): perms.add(s[i-k:i]) return len(perms) == num_perms