1. 程式人生 > >leetcode 231 power of two 191 位1的個數 -------python

leetcode 231 power of two 191 位1的個數 -------python

給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。

示例 1:

輸入: 1
輸出: true
解釋: 20 = 1
示例 2:

輸入: 16
輸出: true
解釋: 24 = 16
示例 3:

輸入: 218
輸出: false
思路:(2的n次冪) 與 (2的n 次冪- 1)的並集為0

def isPowerOfTwo(n):
    n = int(n)
    if n<=0:
        return False
    else:
        return (n&(n-1)==0)

if __name__ == '__main__':
    print(isPowerOfTwo(10))

191
編寫一個函式,輸入是一個無符號整數,返回其二進位制表示式中數字位數為 ‘1’ 的個數(也被稱為漢明重量)。

示例 :

輸入: 11
輸出: 3
解釋: 整數 11 的二進位制表示為 00000000000000000000000000001011

示例 2:

輸入: 128
輸出: 1
解釋: 整數 128 的二進位制表示為 00000000000000000000000010000000

def hammingWeight(n):
    if n < 0:
        return 0
    num = 0
    while(n):
        n=n&(n-1)
        num +=1
    return num

if __name__ == '__main__':
    print(hammingWeight(8))