检查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
    猜你喜欢