1. 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。
  1. 示例 1
  2. 输入:00000000000000000000000000001011
  3. 输出:3
  4. 解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'
  5. 示例 2
  6. 输入:00000000000000000000000010000000
  7. 输出:1
  8. 解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'
  9. 示例 3
  10. 输入:11111111111111111111111111111101
  11. 输出:31
  12. 解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'

toString(2)把十进制数字转换为二进制字符串

  1. /**
  2. * @param {number} n - a positive integer
  3. * @return {number}
  4. */
  5. var hammingWeight = function(n) {
  6. return n.toString(2).replace(/0/g,'').length
  7. };