作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
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/
我是一名优秀的程序员,十分优秀!