黎子卿 发表于 2023-11-6 13:58:39

为什么不对

return ]),2)%5==0 for i in nums]
给定一个二进制数组 nums ( 索引从0开始 )。

我们将xi 定义为其二进制表示形式为子数组 nums (从最高有效位到最低有效位)。

例如,如果 nums = ,那么 x0 = 1, x1 = 2, 和 x2 = 5。
返回布尔值列表 answer,只有当 xi 可以被 5 整除时,答案 answer 为 true,否则为 false。

isdkz 发表于 2023-11-6 13:58:53

这个问题是要求判断一个二进制数组中的每个子数组的二进制表示形式是否可以被5整除。如果可以被5整除,则返回true,否则返回false。

解决这个问题的方法是将每个子数组的二进制表示形式转换为十进制数,然后判断该十进制数是否可以被5整除。

以下是给定代码的解释:

return ]),2)%5==0 for i in nums]


这行代码使用了列表推导式来生成一个布尔值列表。对于列表中的每个索引i,都执行以下操作:

1.nums :切片操作,获取nums的子数组,从索引0到i。
2.] :将子数组中的每个元素转换为字符串,得到一个字符串列表。
3.''.join(]) :将字符串列表中的元素连接起来,得到一个表示二进制数的字符串。
4.int(''.join(]),2) :将二进制字符串转换为十进制数。
5.int(''.join(]),2)%5==0 :判断十进制数是否可以被5整除,返回一个布尔值。

最后,将每个布尔值添加到一个列表中,并作为最终的返回结果。

希望这个解释能够帮助你理解代码的含义和功能。

Mike_python小 发表于 2023-11-6 13:59:21

好的,让我来回答这个问题。

题目描述:

给定一个二进制数组 nums (索引从0开始)。

我们将xi定义为其二进制表示形式为子数组 nums (从最高有效位到最低有效位)。

例如,如果 nums = ,那么 x0 = 1,x1 = 2, 和x2 = 5。

返回布尔值列表 answer,只有当 xi 可以被 5 整除时,答案 answer 为 true,否则为 false。

解题思路:

根据题目描述,我们可以得出以下几点思路:

1. 将二进制数组转换为十进制数。
2. 判断每个十进制数能否被5整除。

代码实现:


def binary_prefix_divisible_by_5(nums):
    """
    :type nums: List
    :rtype: List
    """
    res = []
    num = 0
    for i in range(len(nums)):
      num = (num << 1) + nums# 将二进制数转换为十进制数
      res.append(num % 5 == 0)   # 判断十进制数是否能被5整除
    return res


代码解释:

1. 首先定义一个空列表 res,用于存储结果;
2. 定义一个变量 num,用于存储当前的二进制数;
3. 遍历二进制数组 nums,将二进制数转换为十进制数,并将结果存储在变量 num 中;
4. 判断每个十进制数能否被5整除,将结果添加到列表 res 中;
5. 最后返回列表 res。

希望这个解答对您有所帮助。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 为什么不对