lc1018-可被5整除的二进制前缀

题目描述

  • 给定一个二进制数组 nums,计算每个“前缀和”是否能被 5 整除

示例

输入:nums = [0,1,1]
输出:[true,false,false]
解释:0 0b01 0b011
输入:nums = [1,1,1]
输出:[false,false,false]

题解

  • 思路:模拟(通过取模防止溢出)
func prefixesDivBy5(nums []int) []bool {
    res := make([]bool, len(nums))
    num := 0
    for i, v := range nums {
        num = (num << 1 | v) % 5
        res[i] = num == 0
    }
    return res;
}
posted @ 2025-09-05 20:48  余越  阅读(5)  评论(0)    收藏  举报