码迷,mamicode.com
首页 > 编程语言 > 详细

Leetcode 191.位1的个数 By Python

时间:2018-09-24 11:14:29      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:leetcode   return   item   tps   tco   个数   strong   etc   位操作   

编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

示例 :

输入: 11
输出: 3
解释: 整数 11 的二进制表示为 00000000000000000000000000001011

示例 2:

输入: 128
输出: 1
解释: 整数 128 的二进制表示为 00000000000000000000000010000000

思路

用位操作即可,只有1&1才为1

代码

class Solution(object):
    def hammingWeight(self, n):
        """
        :type n: int
        :rtype: int
        """
        ans = 0
        while n!=0:
            if n&1:
                ans += 1
            n >>= 1
        return ans

另解

python内置bin()函数可以将一个数转换为2进制,然后count即可

bin_n = bin(n)
return bin_n[2:].count('1')    #开头是0b,所以从2开始

Leetcode 191.位1的个数 By Python

标签:leetcode   return   item   tps   tco   个数   strong   etc   位操作   

原文地址:https://www.cnblogs.com/MartinLwx/p/9694788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!