Hackerrank比较Triplets Javascript

Jus*_*fai 1 javascript integer

我知道这个话题已经有一个话题了,但是我只是想知道为什么这个解决方案不能解决HackerRank的“比较三元组”问题?当它应该是1 1时,我只会得到1的输出。

该问题指出,如果a0> b0,a1> b1或a2> b2(反之亦然),则结果应打印不等于1的任何比较的分隔整数。

https://www.hackerrank.com/challenges/compare-the-triplets/problem

function solve(a0, a1, a2, b0, b1, b2) {
    
    var solution = []

    if (a0 > b0 || a1 > b1 || a2 > b2) {
        solution += 1;
    } else if (a0 < b0 || a1 < b1 || a2 < b2 ) {
        solution += 1;
    }
    return solution.split('');
}
Run Code Online (Sandbox Code Playgroud)

----更新----

上面的代码仅适用于第一个测试用例,而其余的则无效。下面的代码虽然很笨拙,但适用于所有测试用例。

function solve(a0, a1, a2, b0, b1, b2) {
    var s = [0, 0];
    
    if (a0 > b0) {s[0] += 1;} 
    if (a1 > b1) {s[0] += 1;} 
    if (a2 > b2) {s[0] += 1;}
    if (a0 < b0) {s[1] += 1;}
    if (a1 < b1) {s[1] += 1;}
    if (a2 < b2) {s[1] += 1;}
        
    return s;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

我的解决方案,我认为更简单,并且不假设评级参数的长度。

let counterA = 0,
    counterB = 0;
for(let i=0;i<a.length;i++){
    if(a[i] > b[i]){
        counterA++;
    }
    else if(a[i] < b[i]){
        counterB++;
    }
}

return [counterA,counterB];
Run Code Online (Sandbox Code Playgroud)


Chr*_*sty 5

如果a和b被视为数组,似乎会传递hackerrank:

function compareTriplets(a, b) {
    let score = [0,0]

    for (let i = 0; i < a.length; i++)
        a[i] > b[i] ? score[0]++ : a[i] < b[i] ? score[1]++ : ""
    return score
}
Run Code Online (Sandbox Code Playgroud)