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

Tiền tố nhị phân chia hết cho 5 trong Python

Giả sử chúng ta có một mảng A gồm 0s và 1s, coi N [i] là mảng con thứ i từ chỉ số A [0] đến A [i] được hiểu là một số nhị phân. Chúng ta phải tìm một danh sách các câu trả lời boolean, trong đó câu trả lời [i] là đúng nếu và chỉ khi N [i] chia hết cho 5.

Vì vậy, nếu đầu vào là [0,1,1,1,1,1], thì đầu ra sẽ là [true, false, false, false, true, false]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • length:=kích thước của A
  • ans:=tạo một mảng có độ dài kích thước và điền bằng false
  • number:=một giá trị nhị phân bằng cách nối từng phần tử từ A
  • đối với tôi trong phạm vi từ 0 đến chiều dài, thực hiện
    • nếu số mod 5 giống 0, thì
      • ans [length-i-1]:=True
    • number:=number / 2
  • trả lại ans

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution:
   def prefixesDivBy5(self, A):
      length=len(A)
      ans=[False]*length
      number=int("".join(map(str,A)),2)
      for i in range(length):
         if number%5==0:
            ans[length-i-1]=True
            number=number>>1
      return ans
ob = Solution()
print(ob.prefixesDivBy5([0,1,1,1,1,1]))

Đầu vào

[0,1,1,1,1,1]

Đầu ra

[True, False, False, False, True, False]