leetcode 一道玄題

class Solution(object):
    def prefixesDivBy5(self, A):
        sum = 0
        for i in range(len(A)):
            sum += A[i] * 2
            if (sum//2) % 5 == 0:
                A[i] = 'true'
            else:
                A[i] = ‘false’
            sum *= 2
        return A

題目鏈接:https://leetcode.com/problems/binary-prefix-divisible-by-5/
思路:從第一個數開始計算,第一次sum1=a12,第二次sum2=(a12)2+a22,第三次sum3=((a1*2)2+a22)2,以此類推,遍歷完所有數字。由於二進制運算要求最末尾的數字是i2^0,所以每次得到的結果都需要/2,然後與5取餘。
tip:筆者要聲明一下,這題在我的pycharm裏面是運行正確的,都是在leetcode上面運行結果錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章