二进制前缀在Python中可被5整除
假设我们有一个0和1的数组A,考虑N [i]是从索引A [0]到A [i]的第i个子数组,被解释为二进制数。我们必须找到一个布尔答案列表,其中且仅当N [i]被5整除时,答案[i]为真。
因此,如果输入类似于[0,1,1,1,1,1,1],则输出将为[true,false,false,false,true,false]
为了解决这个问题,我们将遵循以下步骤-
长度:= A的大小
ans:=制作一个大小为长度的数组,并用false填充
数字:=通过将A中的每个元素串联而得到的二进制值
对于长度范围为0的i,执行
ans [length-i-1]:=真
如果数字mod 5与0相同,则
数字:=数字/ 2
返回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]
以上是 二进制前缀在Python中可被5整除 的全部内容, 来源链接: utcz.com/z/316567.html