【发布时间】:2017-09-16 22:56:44
【问题描述】:
所以,我正在尝试解决来自 HackerRank (https://www.hackerrank.com/challenges/compare-the-triplets/problem) 的比较三胞胎问题。
我的 JavaScript 解决方案通过了所有测试用例,但 Python3 未能通过其中一些测试用例(HackerRank 不允许查看哪些测试用例)。如您所见,我遵循相同的逻辑,但在 Python 中它不起作用。我的 Python 和 JS 代码有什么区别?
JS:
function solve(a0, a1, a2, b0, b1, b2){
var alice = ( a0 > b0 ? 1 : 0 ) + ( a1 > b1 ? 1 : 0 ) + ( a2 > b2 ? 1 : 0 );
var bob = ( a0 < b0 ? 1 : 0 ) + ( a1 < b1 ? 1 : 0 ) + ( a2 < b2 ? 1 : 0 );
return [alice, bob];
}
Python3:
def solve(a0, a1, a2, b0, b1, b2):
alice = 1 if a0 > b0 else 0 + 1 if a1 >v b1 else 0 + 1 if a2 > b2 else 0
bob = 1 if a0 < b0 else 0 + 1 if a1 < b1 else 0 + 1 if a2 < b2 else 0
return (alice, bob)
【问题讨论】:
-
出于某种原因,您决定不在 Python 版本中使用括号……?条件运算符的优先级仍然低于
+。 (bool也是int的子类,所以你可以只使用(a0 > b0) + (a1 > b1) + (a2 > b2),在JS 中也是如此。)
标签: javascript python-3.x