请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1。因此,如果输入9,则该函数输出2.
工具/原料
python
leetcode
方法/步骤
1、示例1:输入整数,先转化为2进制,然后统计二进制中1的稍僚敉视个数:00000000000000000000000000001011输出:3解释:输入的二进制串00000000000000扉钛笆哇000000000000001011中,共有三位为'1'。
2、解题思路:该问题先拆解为两个问题:1)先将十进制转化为二进制;2)再统计1的个数
3、示例代码如下:classSolution:defham葡矩酉缸mingWeight(self,n:int)->int:a=1l足毂忍珩ist=[]whilea>0:a,b=divmod(n,2)list.append(str(b))n=as=""foriinrange(len(list)-1,-1,-1):s+=str(list[i])res=Solution.findone(s)returnresdeffindone(str):returnstr.count('1')