检查Python数组中大小为k的每个片段中是否存在键
假设我们有一个包含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相同,则:
- 跳出循环
- j := j + 1
- 如果arr[j + i]与p相同,则:
- 如果j与k相同,则:
- 返回False
- i := i + k
- 如果i与n相同,则:
- 返回True
- j := i - k
- 当j < n时,执行:
- 如果arr[j]与p相同,则:
- 跳出循环
- j := j + 1
- 如果arr[j]与p相同,则:
- 如果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]
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
True
广告