leetcode-easy-others-191. Number of 1 Bits-NO
mycode 不会。。。
输入是二进制。。。。我还以为十进制。。。。 00000001011 = 11
题意:
编写一个将(无符号)整数作为输入的函数,并返回该数字二进制表示中等于1的位数。
例如:输入1234,其二进制表示为10011010010,所以所要求实现函数的输出应该是5。
参考
1 移位+计数
class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
count = 0
while n > 0 :
if(n&1) == 1:
count = count+1
n>>=1
return count
2、
思路:用n&(n-1)来消去一个1 能循环多少次就是能消多少个1~
因为如果那个位置本身就是1的话,那么减去一除了最后一位会变以外,其他都不会变 1111-1=1110;如果最后一位是0;则最右的1变为0,它右边的全部都取反一次,左边不变,然后与原本自己作与能恢复,变回只变换了一位的数据。如1000-1=0111 0111&1000=0000 实际上只把其中最右的1变为0而已;所以他能循环多少次就有多少个1.
如x=0001101011000
x- 1 = 0001101010111 那么&之后,x右边第一个1的位置变为0,右边的0还是0,所以还是相当count一个1
class Solution:
def NumberOf1(self, n):
if n<0:
n = n & 0xffffffff
cnt = 0
while n:
n = n&(n-1)
cnt += 1
return cnt
def isPowerOfTwo(n):
if n&(n-1):
return False
return True class Solution(object):
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
if n==0:
return 0
elif n<=2:
return 1
if isPowerOfTwo(n): #说明二进制数有且仅有一个1啦,所以消去了一个1后,if为False
return 1
else :
c=0
for i in range(32):
c+=n%2 #感觉就是看最低位是不是1
n=n>>1
return c
3
replace("0b","")是将 0b去掉,这样就得到了n 完整的二进制表示
replace("0","")是将 二进制中的0去掉,这样就得到了生下的都是1的表示
len() 再获取其长度,就是该数字二进制表示中等于1的位数
虽然这是四个系统函数的拼接使用,但有效的减少了相应的代码行数。
def hammingWeight(self, n):
"""
:type n: int
:rtype: int
"""
return str(bin(n).replace("0b","")).count("")
或者
return bin(n).count("1")
return len(bin(n).replace("0b","").replace("0",""))
replace("0b","")是将 0b去掉,这样就得到了n 完整的二进制表示
replace("0","")是将 二进制中的0去掉,这样就得到了生下的都是1的表示
len() 再获取其长度,就是该数字二进制表示中等于1的位数
虽然这是四个系统函数的拼接使用,但有效的减少了相应的代码行数。
作者:曹波波
链接:https://www.jianshu.com/p/e642d225bb59
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
leetcode-easy-others-191. Number of 1 Bits-NO的更多相关文章
- 【leetcode❤python】191. Number of 1 Bits
#-*- coding: UTF-8 -*- class Solution(object): def hammingWeight(self, n): if n<=0:retu ...
- Leetcode#191. Number of 1 Bits(位1的个数)
题目描述 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 000000 ...
- LN : leetcode 191 Number of 1 Bits
lc 191 Number of 1 Bits 191 Number of 1 Bits Write a function that takes an unsigned integer and ret ...
- (easy)LeetCode 191.Number of 1 Bits
Number of 1 Bits Write a function that takes an unsigned integer and returns the number of ’1' bits ...
- 【LeetCode】191. Number of 1 Bits 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 右移32次 计算末尾的1的个数 转成二进制统计1的个 ...
- LeetCode 191. Number of 1 bits (位1的数量)
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...
- 【一天一道LeetCode】#191. Number of 1 Bits
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Write a ...
- [LeetCode] 191. Number of 1 Bits 二进制数1的个数
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...
- LeetCode 191 Number of 1 Bits
Problem: Write a function that takes an unsigned integer and returns the number of '1' bits it has ( ...
- Java for LeetCode 191 Number of 1 Bits
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...
随机推荐
- new Date,Date.parse()传值
获取时间: 获取1997年10月1号日期 new Date: 当使用 - 拼接年月日时将会使用UTC时区解析参数,会比北京时间快八小时. 当时用 / 拼接年月日时会使用北京的时区去解析参数,取到的是北 ...
- 安装Mybatis插件
http://blog.csdn.net/nextyu/article/details/69225004
- vue+webpack项目环境搭建
首先安装node.js 下载地址:https://nodejs.org/en/download/ 看下是否成功安装 node -v 安装webpack,命令行npm install webpack - ...
- docker快速入门02——在docker下开启mysql5.6 binlog日志
1.检查容器状态 [root@localhost ~]# docker ps 执行这个命令可以看到所有正在运行当中的容器,如果加上-a参数,就可以看到所有的容器包括停止的. 我们可以看到容器正在运行当 ...
- 第十篇.4、python并发编程之多线程
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python ...
- VSCode配合chrome浏览器调试cocos2d js项目
1.准备阶段 具备调试功能的VSCode(我的是在win10上,版本是1.17.1) 在VSCode里下载安装Debugger for Chrome扩展插件. 2.具体操作 创建一个cocosjs工程 ...
- PHP5.3x被弃用的函数及代替方法
今天阳光明媚,万里无云,小记一下php5.3x被弃用的部分函数及代替方法 下面列举了部分被弃用的函数:call_user_method():(使用 call_user_func() 替代)call_u ...
- k8sService资源
一.service资源及其实现模型 通过规则定义出由多个pod对象组合而成的逻辑集合,以及访问这组pod的策略.service关联pod资源的规则要借助于标签选择器来完成 1.service资源概述 ...
- 使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC + Mybatis的Web项目 (零配置文件)
前言: 除了mybatis 不是零配置,有些还是有xml的配置文件在里面的. 注解是Spring的一个构建的一个重要手段,减少写配置文件,下面解释一下一些要用到的注解: @Configuration ...
- SpringCloud使用feign时的复杂参数传递(转)
Feign传参注意 最近在用SpringCloud尝试重构以前的项目,使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上的使用还是有一定的 ...