检查Python数组中大小为k的每个段中是否存在键
假设我们有一个包含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