题目如下:
Given an array
Aof0s and1s, considerN_i: the i-th subarray fromA[0]toA[i]interpreted as a binary number (from most-significant-bit to least-significant-bit.)Return a list of booleans
answer, whereanswer[i]istrueif and only ifN_iis divisible by 5.Example 1:
Input: [0,1,1] Output: [true,false,false] Explanation: The input numbers in binary are 0, 01, 011; which are 0, 1, and 3 in base-10. Only the first number is divisible by 5, so answer[0] is true.Example 2:
Input: [1,1,1] Output: [false,false,false]Example 3:
Input: [0,1,1,1,1,1] Output: [true,false,false,false,true,false]Example 4:
Input: [1,1,1,0,1] Output: [false,false,false,false,false]Note:
1 <= A.length <= 30000A[i]is0or1
解题思路:本题很简单,往左移位即可。每移动一位,如果当前位置的值是1,值需要加上1。
代码如下:
class Solution(object):def prefixesDivBy5(self, A):""":type A: List[int]:rtype: List[bool]"""res = []val = 0for i in A:val = val << 1if i == 1:val += 1res.append(val % 5 == 0)return res











