Giả sử chúng ta có một mảng A với N phần tử, chúng ta có một giá trị khác p và một đoạn kích thước k, chúng ta phải kiểm tra xem khóa p có xuất hiện trong mọi đoạn kích thước k trong A.
Vì vậy, nếu đầu vào là A =[4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4], p =4 và k =3, thì đầu ra sẽ là True
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- i:=0
- trong khi i
- j:=0
- while j
- nếu arr [j + i] giống với p, thì
- break
- j:=j + 1
- trả về Sai
- trả về True
- break
- trả về Sai
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
[4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4]
Đầu ra
True