สมมติว่าเรามีอาร์เรย์ A ที่มีองค์ประกอบ N เรามีค่าอื่น p และขนาดกลุ่ม k เราต้องตรวจสอบว่ามีคีย์ p อยู่ในทุกส่วนของขนาด k ใน A หรือไม่
ดังนั้น หากอินพุตเป็น A =[4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4], p =4 และ k =3 ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ผม :=0
- ในขณะที่ i
- j :=0
- ในขณะที่ j
- ถ้า arr[j + i] เหมือนกับ p แล้ว
- แตก
- j :=j + 1
- คืนค่าเท็จ
- คืนค่า 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