所以我正在解决hackerrank的问题,我是python的初学者。
有关我正在尝试做什么的信息,请访问:https://www.hackerrank.com/challenges/compare-the-triplets?h_r=next-challenge&h_v=zen
a0,a1,a2 = input().strip().split(' ')
a0,a1,a2 = [int(a0),int(a1),int(a2)]
b0,b1,b2 = input().strip().split(' ')
b0,b1,b2 = [int(b0),int(b1),int(b2)]
a1 = 0
b1 = 0
lst1 = a0,a1,a2
lst2 = b0,b1,b2
for x, y in zip(lst1, lst2):
if x > y:
a1 += 1
if x <y:
b1 += 1
else:
pass
print(a1, b1)
所以这非常有效。
但是,在其中一个测试用例中,输入是
6 8 12
7 9 15
,输出应为
0 3
但是我的代码仍然失败了。为什么会这样?
答案 0 :(得分:4)
我发现了2个问题。 1.变量名称相同。注意列表中的a1和a1作为单独的变量。 2.而不是打印,您可以使用&#39; {0} {1}&#39; .format(a1,b1) 另外我建议使用raw_input()而不是input(),这将有助于将输入视为字符串。
答案 1 :(得分:3)
也许您需要将代码中的a1,b1的varibale名称更改为其他名称。
....
a1 = 0
b1 = 0
...
他们会将输入a1 / b1删除为同名,我不明白为什么需要:)
a0,a1,a2 = [int(a0),int(a1),int(a2)]
b0,b1,b2 = [int(b0),int(b1),int(b2)]