Python 中可被 5 整除的二進位制字首
假設我們有一個數組 A,其中包含 0 和 1,則 N[i] 是從索引 A[0] 到 A[i] 的第 i 個子陣列,解釋為二進位制數。我們需要找到一個布林值回答的列表,其中當且僅當 N[i] 可被 5 整除時,answer[i] 才為真。
因此,如果輸入類似於 [0,1,1,1,1,1],則輸出將為 [true,false,false,false,true,false]
為了解決這個問題,我們將遵循以下步驟:
- length := A 的大小
- ans:= 製作一個大小為 length 的陣列,並用 false 填充
- number := 透過連線 A 中的每個元素形成的二進位制值
- 對 range 0 到 length 中的 i 執行以下操作:
- 如果 number 模 5 與 0 相同,則
- ans[length-i-1] := True
- number := number / 2
- 如果 number 模 5 與 0 相同,則
- 返回 ans
讓我們參考以下實現以獲得更好的理解:
示例
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]))輸入
[0,1,1,1,1,1]
輸出
[True, False, False, False, True, False]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP