假设我们有一个包含N个元素的数组A,我们有另一个值p和一个分段大小k,我们必须检查A中每个大小为k的分段中是否存在键p。
因此,如果输入像A = [4、6、3、5、10、4、2、8、4、12、13、4],p = 4和k = 3,则输出将为True
为了解决这个问题,我们将遵循以下步骤-
i:= 0
当我<n为非零时
返回False
如果arr [j + i]与p相同,则
j:= j + 1
打破
j:= 0
当j <k时
如果j与k相同,则
i:= i + k
如果我和n相同
返回True
j:= i-k
当j <n时
打破
如果arr [j]与p相同,则
j:= j + 1
如果j与n相同,则
返回False
返回True
让我们看下面的实现以更好地理解-
def key_in_segment_k(arr, p, k, n) : i = 0 while i < n : j = 0 while j < k : if arr[j + i] == p : break j += 1 if j == k : return False i = i + k if i == n : return True j = i - k while j < n : if arr[j] == p : break j += 1 if j == n : return False return True arr = [4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4] p, k = 4, 3 n = len(arr) print(key_in_segment_k(arr, p, k, n))
[4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4]
输出结果
True