HackerRank Compare the Triplets问题:Javascript解决方案输出异常求助
排查你的「Compare the Triplets」JS解决方案问题
嘿,我来帮你揪出问题所在~你说预期输出是1 1但只得到1,大概率是你在输出/返回结果的时候没正确处理两个分数的格式,或者漏算了其中一个分数的统计。
先再明确下题目核心规则:
分别比较a数组和b数组的对应元素(a0 vs b0、a1 vs b1、a2 vs b2),每一组中谁的数大,谁的分数加1;相等则不加。最后输出以空格分隔的两个整数,第一个是爱丽丝的分数,第二个是鲍勃的分数。
常见错误点及解决方法
我猜你可能踩了下面这些坑:
- 只返回/输出了其中一个分数:比如你的代码最后只写了
return aliceScore;或者console.log(bobScore);,那肯定只会输出一个数。 - 返回了数组但没转成空格分隔的字符串:如果直接返回
[alice, bob],HackerRank的判题系统可能无法识别数组格式,只会输出数组的第一个元素或者格式错误。 - 分数统计逻辑有遗漏:比如只统计了爱丽丝得分的情况,没处理鲍勃得分的分支(不过你能得到1,这个可能性相对小)。
给你一个正确的示例代码参考
function solve(a0, a1, a2, b0, b1, b2) { let alice = 0; let bob = 0; // 逐个比较对应元素 if (a0 > b0) alice++; else if (a0 < b0) bob++; if (a1 > b1) alice++; else if (a1 < b1) bob++; if (a2 > b2) alice++; else if (a2 < b2) bob++; // 关键:返回空格分隔的字符串,或者直接用console.log输出两个数 return `${alice} ${bob}`; // 或者用console.log(alice, bob); 也能输出空格分隔的结果 }
你可以对照自己的代码看看是不是在结果输出这一步出了问题,只要确保最后输出的是两个用空格分开的整数,就能符合题目的要求啦~
内容的提问来源于stack exchange,提问作者Justin Cefai
相关产品推荐
相关产品推荐

