当前位置: 首页 > news >正文

python每日一题 1的数量 非常简单

给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。

不就是转二进制 然后转化为字符 看字符1的数量  直接写代码 

class Solution(object):def hammingWeight(self, n):if n==0:return 0binary = ""while n > 0:binary = str(n % 2) + binaryn = n // 2#这个是得到转化为的二进制 而且现在是字符类型的count=0for i in binary:if i=='1':count+=1return count
solution=Solution()
result=solution.hammingWeight(10)
print(result)

然后其实后面的for循环是有些多余的 在得到binary是1的时候直接统计就可以了

class Solution(object):def hammingWeight(self, n):if n==0:return 0binary = ""count = 0while n > 0:binary = str(n % 2)if binary=='1':count+=1n = n // 2#这个是得到转化为的二进制 而且现在是字符类型的return count
solution=Solution()
result=solution.hammingWeight(10)
print(result)

但是不知道为啥 效果还是一般 那么继续想其他的思路 其实对于二进制而言  位运算是最常使用的 

就是和1进行与运算 与运算就是将这个数字自动变为2进制了 然后有的话就+1 没有就右移

通过 n & 1 来判断当前最低位是否为1,如果是,就将计数加1;然后将 n 右移一位(n >>= 1),继续检查下一位,直到 n 变为0。这样就可以统计出二进制中1的个数 

那我们来写代码

class Solution(object):

    def hammingWeight(self, n):

        if n==0:

            return 0

        binary = ""

        count = 0

        while n > 0:

            if n&1:

                 count+=1

            n = n // 2

        #这个是得到转化为的二进制 而且现在是字符类型的

        return count

solution=Solution()

result=solution.hammingWeight(128)

print(result)

这个代码真的很简单了 但是我觉得因为我代码能力很差 所以我的弊端就是我总是不会将特点与对应的解题方法联系起来 但是这些也确实是需要日积月累完成的 

好的 如果你喜欢这个代码 欢迎点赞!

http://www.dtcms.com/a/326470.html

相关文章:

  • 松灵机器人 scout ros2 galactic 驱动 安装,并且跑巡线算法
  • 深入剖析 C++ STL 中的 std::list 容器
  • 一篇文章解决Unity没有添加模块选项的问题
  • Linux系统编程 | 线程池
  • Redis7 GEO功能介绍与电商场景案例解析
  • Static CXL Switch:静态CXL交换机相关内容
  • leecode875 爱吃香蕉的珂珂
  • 【Unity】打包学习笔记
  • pip 和 conda,到底用哪个安装?
  • 【已解决】【obsidian插件开发】svg图标路径不正确
  • 第16届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2025年1月12日真题
  • 机器翻译:一文掌握序列到序列(Seq2Seq)模型(包括手写Seq2Seq模型)
  • 豆包 + 蘑兔 AI:音乐创作的梦幻组合
  • UE5太空射击游戏入门(二):场景搭建与自动飞行
  • JS-第二十三天-正则
  • Vue2篇——第二章 Vue从指令修饰符到侦听器的全面解析(重点)
  • 反射之Reflect
  • 网页复杂文本信息解析提取-Crawl4AI+Ollama
  • week1+2+3
  • Python自学05-分支结构
  • 2025年08月11日Github流行趋势
  • Deepoc如何让传统码垛机器人获得“类人决策力“​
  • python之浅拷贝深拷贝
  • 01-spring-手写spring-demo实现基础的功能
  • SAM2的应用
  • 机器学习中数据集的划分难点及实现
  • 比例份额调度
  • CV 医学影像分类、分割、目标检测,之【血红细胞分类】项目拆解
  • n8n中调用playwright-mcp 项目
  • LeetCode151~188题解