Numberof1's题目描述:写一个函数,以一个无符号整数为输入(以二进制字符串的形式),返回其二进制表达式的位数为'1''(也称为汉明权重)。提示:请注意,在某些语言中,例如Java,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为整数的内部二进制表示形式是相同的,无论它是有符号的还是无符号的。在Java中,编译器使用二进制补码表示有符号整数。因此,在上面的示例3中,输入表示有符号整数-3。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:遍历首先使用Integer.toBinaryString(num)方法将n转为二进制字符串binaryString;然后,遍历字符串binaryString的每个字符,判断当前字符是否为'1',如果是,将结果加1;最终返回的结果是二进制数中1的个数。publicclassLeetCode_191{publicstaticinthammingWeight(intn){StringbinaryString=Integer.toBinaryString(n);整数结果=0;for(charc:binaryString.toCharArray()){if(c=='1'){结果++;}}返回结果;}publicstaticvoidmain(String[]args){System.out.println(hammingWeight(20));}}【每日留言】人生如雨,请撑伞原谅!等到下雨天晴的时候,它会还你一片蓝天,还你一道彩虹。
