面试15题:

题目:二进制中1的个数

题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

解题思路一:

最佳方法:把一个整数减去1,再和原整数做“与运算”,会把该整数最右边的1变成0。那么一个整数的二进制中表示中有多少个1,就可以进行多少次这样的操作。

解题代码:

# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
count=0
if n < 0:
n=n & 0xffffffff
while (n):
n=(n-1) & n
count += 1
return count

注意:如果该整数是负数,要把它和0xffffffff相与,消除负数的影响。

解题思路二:利用Python特性

解题代码:

# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
return bin(n&0xffffffff).count("")

最新文章

  1. FPGA 开发笔记 点滴
  2. C#写入和读出文本文件
  3. gulp插件(gulp-jmbuild),用于WEB前端构建
  4. AJAX向服务器发送请求
  5. WPF 显示gif
  6. A New Tetris Game
  7. LINUX消息队列实战之一
  8. SQLSERVER2000以上 Ad Hoc Distributed Queries的启用与关闭
  9. apache kafka源码分析-Producer分析---转载
  10. Activitys, Threads, &amp; Memory Leaks
  11. 安装m2eclipse
  12. Python之列表方法
  13. Codeforces 806 D. Perishable Roads Dijkstra
  14. 如何更优雅的在kubernetes平台下记录日志
  15. WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足
  16. 20155217《网络对抗》Exp03 免杀原理与实践
  17. duilib踩坑记录
  18. 对不队——Alpha冲刺
  19. 如何在Linux上安装服务器管理软件Cockpit
  20. JDBC使用游标实现分页查询的方法

热门文章

  1. html5在移动端的屏幕适应性问题
  2. Atitit.编程语言新特性&#160;通过类库框架模式增强&#160;提升草案&#160;v3&#160;q27
  3. Visual Studio : Debug &gt; Start new instance添加快捷键
  4. 实现html锚点的两种方式
  5. php画图应用之验证码
  6. org.mockito.exceptions.misusing.CannotStubVoidMethodWithReturnValue
  7. iOS 如何缩小打包项目ipa大小
  8. python 开发技巧(3)-- 连接mysql 出现错误 ModuleNotFoundError: No module named &#39;MySQLdb&#39;
  9. Linux gdb调试器
  10. Linux 常用文件管理命令