二进制数字字符串最大为1

时间:2020-08-06 07:53:17

标签: javascript

为什么此代码不会被hackerrank测试接受,结果期望为3,而将数字439转换为二进制字符串则结果为2。

任务:https://www.hackerrank.com/challenges/30-binary-numbers/problem?isFullScreen=true

我的代码(在测试用例2-> input = 439上失败):

function main() {
    const n = parseInt(readLine(), 10);
    const nBinary = n.toString(2);
    const nBinarySplit = nBinary.split("");
    let count = 0;
    
    for (let i = 0; i < nBinarySplit.length; i++) {
        if (nBinarySplit[i] === '1') {
            count++;
        } else {
            break;
        }
    }

    console.log(count);
}

1 个答案:

答案 0 :(得分:1)

一些捷径解决方案:

function main() {
    const n = parseInt(readLine(), 10);
    const nBinary = n.toString(2);
    const nBinarySplit = nBinary.split("0");

    let result = nBinarySplit.reduce((r,s) => r > s.length ? r : s.length, 0);

    console.log(result);
}