📅  最后修改于: 2023-12-03 14:56:53.244000             🧑  作者: Mango
本题要求实现一个函数,统计给定二进制字符串中长度为 K 的子数组中,仅包含 1 的子数组个数。
遍历字符串,使用双指针维护一个长度为 K 的子数组的左右端点,通过判断子数组中 0 的个数来判断是否为符合条件的子数组。
def count_k_length_subarrays(binary_string: str, k: int) -> int:
count = 0
left, right = 0, k - 1
while right < len(binary_string):
if binary_string.count('0', left, right + 1) == 0:
count += 1
left += 1
right += 1
return count
例如:
assert count_k_length_subarrays("1010101", 2) == 2
时间复杂度: $O(nk)$
空间复杂度: $O(1)$