力扣刷题记录#数组#简单#1018可被 5 整除的二进制前缀

📅 2026/7/28 16:04:57
力扣刷题记录#数组#简单#1018可被 5 整除的二进制前缀
题目描述给定由若干 0 和 1 组成的数组 A。我们定义 N_i从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数从最高有效位到最低有效位。返回布尔值列表 answer只有当 N_i 可以被 5 整除时答案 answer[i] 为 true否则为 false。示例输入[0,1,1]输出[true,false,false]解释输入数字为 0, 01, 011也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除因此 answer[0] 为真。输入[1,1,1]输出[false,false,false]输入[0,1,1,1,1,1]输出[true,false,false,false,true,false]输入[1,1,1,0,1]输出[false,false,false,false,false]解答重点在于二进制数的计算classSolution(object):defprefixesDivBy5(self,A)::type A:List[int]:rtype:List[bool] anslist()pre0forbit in A:# 上一次计算结果*2当前二进制数最后一位当前二进制数的十进制表示 curpre*2bit precurifcur%50:ans.append(True)else:ans.append(False)returnans