Строка двоичных чисел макс.1 - PullRequest
1 голос
/ 06 августа 2020

Почему этот код не принимается тестом 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 Ответ

1 голос
/ 06 августа 2020

Небольшое решение:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...