1018. 可被 5 整除的二进制前缀 - 力扣(LeetCode)
你可以使用一个变量 num
来存储当前的二进制数,并在遍历数组的过程中不断更新它,同时检查是否能被 5 整除。这里是 Python 代码实现:
from typing import List
def prefixesDivBy5(nums: List[int]) -> List[bool]:
result = []
num = 0
for bit in nums:
num = (num * 2 + bit) % 5 # 只保留余数,防止溢出
result.append(num == 0)
return result
# 示例测试
nums = [1, 0, 1]
print(prefixesDivBy5(nums)) # 输出: [False, False, True]
这个方法利用了模运算的特性,仅维护余数,不断更新二进制数值,避免大整数溢出问题。这样可以高效判断每个前缀是否能被 5 整除。