gpt4 book ai didi

python - 计数 hackerrank 上的三胞胎错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:00 25 4
gpt4 key购买 nike

Link to count triplets problem

在下面的代码中,hackerrank 网站说答案不正确,但是当我在本地机器上运行代码时。具体测试用例 2,它是 100 个 1 的数组,三元组乘数为 1,预期输出应该是 161700,在我的本地机器上我得到 161700,但是在 hackerrank 网站上我得到它是不正确的。

 def countTriplets(arr, r):
sum_array=[]
if int(r)==1:
for x in range(len(arr)-1):
sum_array.append((x*(x+1))/2)
return sum(sum_array)
else:
exp_dict={}
tripletCount=0
for x in arr:

if x in exp_dict:
exp_dict[x]+=1
else:
exp_dict[x]=1
for y in exp_dict:
#print(y)

if ((y % r ==0) or (y==1)) and ((y*r in exp_dict) and (y*r*r in exp_dict)):
#print((exp_dict[y]*exp_dict[y*r]*exp_dict[y*r*r]))
tripletCount+=(exp_dict[y]*exp_dict[y*r]*exp_dict[y*r*r])
#print("hello I am a computer nerd")


return tripletCount

最佳答案

要通过在线编码挑战,您的输出格式必须符合预期格式。您的程序正在生成 161700.0,预期的答案是 161700。这是因为 split 而发生的。我将返回值转换为 int 并通过了案例。

def countTriplets(arr, r):
sum_array=[]
if int(r)==1:
for x in range(len(arr)-1):
sum_array.append((x*(x+1))/2)
return int(sum(sum_array)) # change in this line
else:
exp_dict={}
tripletCount=0
for x in arr:

if x in exp_dict:
exp_dict[x]+=1
else:
exp_dict[x]=1
for y in exp_dict:
#print(y)

if ((y % r ==0) or (y==1)) and ((y*r in exp_dict) and (y*r*r in exp_dict)):
#print((exp_dict[y]*exp_dict[y*r]*exp_dict[y*r*r]))
tripletCount+=(exp_dict[y]*exp_dict[y*r]*exp_dict[y*r*r])
#print("hello I am a computer nerd")

return tripletCount

但是它仍然没有解决 100% 的测试用例。此答案特定于您询问的测试用例。

关于python - 计数 hackerrank 上的三胞胎错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com