在 Python 中检查数组中每个大小为 k 的段中是否存在某个键

pythonserver side programmingprogramming更新于 2025/10/17 6:36:17

假设我们有一个包含 N 个元素的数组 A,我们有另一个值 p 和一个大小为 k 的段,我们必须检查键 p 是否存在于 A 中每个大小为 k 的段中。

因此,如果输入为 A = [4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4],p = 4 且 k = 3,则输出将为 True

为了解决这个问题,我们将遵循以下步骤 −

  • i := 0
  • 当 i < n 非零时,执行
    • j := 0
    • 当 j < k,执行
      • 如果 arr[j + i] 与 p 相同,则
        • break
      • j := j + 1
    • 如果 j 与 k 相同,则
      • 返回 False
    • i := i + k
  • 如果 i 与 n 相同,则
    • 返回 True
  • j := i - k
  • 当 j < n,执行
    • 如果 arr[j] 与 p 相同,则
      • break
    • 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

相关文章


有用资源