编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)
示例 1:
输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1‘。
示例 2:
输入:00000000000000000000000010000000 输出:1 解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 ‘1‘。
示例 3:
输入:11111111111111111111111111111101 输出:31 解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 ‘1‘。
/** * @param {number} n - a positive integer * @return {number} */ var hammingWeight = function(n) { let str = n.toString(2).split(""); let temp = 0; for(let i= 0;i<str.length;i++){ if(str[i] == 1){ temp++; } } return temp };
解法2:
return n.toString(2).replace(/0/g, ‘‘).length;
原文:https://www.cnblogs.com/xiyu-8023/p/10476318.html