当函数是一个数字时,我不能分割一串数字--为什么?你是怎么做到的?
我在尝试https://leetcode.com/problems/number-of-1-bits/
Ways to split a Number into an Array
接受答复:
,让我们看看它是如何工作的
num +‘.’.split(‘)的工作原理如下
num是一个空数组,它不是一个数字num转换为'969',[]到string是‘(empty)。
num.toString() +‘.’.split(‘)的工作原理如下
num.toString()是一个空数组[]转换为string‘(empty)String(num).split('')的工作方式类似于
num转换为字符串当然,当我尝试时,it....it不起作用:
var hammingWeight = function(n) {
let oneBits = String(n).split('');
console.log(oneBits)
};
hammingWeight(0000011110)
这里发生了什么事?为什么不起作用?
function hammingWeight(n) {
let oneBits = String(n).split('');
console.log(oneBits)
};
hammingWeight(0000011110)
为什么这个不行?
function hammingWeight(n) {
let oneBits = n.toString().split('');
console.log(oneBits)
};
hammingWeight(0000011110)
我不明白--这些数字是从哪里来的?
Binary to String in JavaScript
function hammingWeight(n) {
const oneBits = String.fromCharCode(
...n.split(''))
)
console.log(oneBits)
};
hammingWeight(0000011110)
也不起作用!
发布于 2022-09-01 15:55:46
Leet网站要求一个整数,但它正在计算二进制1位的数量。
要满足所提供的方法,您必须:将数字转换为二进制字符串,将其拆分为单个位,只过滤1位,并返回长度。
/**
* @param {number} n - a positive integer
* @return {number} number of 1 bits present in the binary representation
*/
const hammingWeight = n => n.toString(2).split('').filter(v => v === '1').length
console.log(hammingWeight(11)) // 1011 => 3
console.log(hammingWeight(128)) // 10000000 => 1
console.log(hammingWeight(4294967293)) // 11111111111111111111111111111101 => 31
如果您想要支持二进制字符串输入,这要容易得多。您只需要接受一个字符串参数而不是一个整数。
/**
* @param {string} bin - an unsigned binary integer string
* @return {number} number of 1 bits present in the binary representation
*/
const hammingWeight = bin => bin.split('').filter(v => v === '1').length
console.log(hammingWeight('1011')) // => 3
console.log(hammingWeight('10000000')) // => 1
console.log(hammingWeight('11111111111111111111111111111101')) // => 31
解释
详细说明,您的问题是在示例中发送八进制整数,而不是二进制字符串。
function hammingWeight(n) {
let oneBits = String(n).split(''); // ['4','6','8','0']
console.log(oneBits)
};
hammingWeight(0000011110) // Same as 011110 or 4680
您可以像这样以文字二进制整数的形式发送它,但仍然需要使用2 (二进制)的基值对其进行压缩:
function hammingWeight(n) {
let oneBits = n.toString(2).split(''); // ['1','1','1','1','0']
console.log(oneBits)
};
hammingWeight(0b0000011110) // Prefix literal binary number with '0b'
https://stackoverflow.com/questions/73572184
复制相似问题