计数hackkerank上的Triplets错误

时间:2018-08-12 20:10:28

标签: python algorithm

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

1 个答案:

答案 0 :(得分:3)

要通过在线编码挑战,您的输出格式必须与预期的格式匹配。您的程序正在生成s = s.replace("Rgb(r=", "(").replace("g=", "").replace("b=", "") ,预期的答案是161700.0。这是由于分裂而发生的。我将返回值转换为161700,并通过了案例。

int

但是,它仍然不能解决100%的测试用例。此答案特定于您要求的测试用例。