Go语言学习之力扣-位1的个数|Go主题月

403 阅读1分钟

作者:看那个码农

公众号:看那个码农

上期内容介绍了Go语言学习之力扣-颠倒二进制位|Go主题月

  • 颠倒二进制位

本篇内容将继续带领大家走进Go语言的世界。

1.本文简介

Go语言学习之力扣-位1的个数

来源于:191. 位1的个数

2.题目描述

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

示例 1

输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'

3.思路与方法

  • 首先可以判断输入num的最后一位是否为1,如果为1,则计数器加1;
  • 然后二进制数右移动,丢弃最后一位
  • 循环执行上述操作直到num的值等于0为止。

4.具体实现代码

func hammingWeight(num uint32) int {
    var i int=0
    for num!=0{
        if num&1==1{
            i++
        }
        num=num>>1
    }
    return i
}

力扣结果输出为:

image.png

如果你觉得这篇内容对你有帮助的话:

1、点赞支持下吧,让更多的人也能看到这篇内容

2、关注公众号:看那个码农,我们一起学习一起进步。