Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem khóa có xuất hiện trong mọi phân đoạn có kích thước k trong một mảng bằng Python hay không

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
  • nếu j giống với k, thì
    • trả về Sai
  • i:=i + k
  • nếu tôi giống n, thì
    • trả về True
  • j:=i - k
  • while j
  • nếu arr [j] giống với p, thì
    • break
  • j:=j + 1
  • nếu j giống với n, thì
    • trả về Sai
  • trả về True
  • 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