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))

猜你喜欢

转载自blog.csdn.net/weixin_40924580/article/details/83155003
今日推荐