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
答案 0 :(得分:3)
要通过在线编码挑战,您的输出格式必须与预期的格式匹配。您的程序正在生成s = s.replace("Rgb(r=", "(").replace("g=", "").replace("b=", "")
,预期的答案是161700.0
。这是由于分裂而发生的。我将返回值转换为161700
,并通过了案例。
int
但是,它仍然不能解决100%的测试用例。此答案特定于您要求的测试用例。