谷歌Foobar “查找访问代码”通过 5 个中的 4 个

问题描述

幸运的是,既然您是 Lambda 指挥官的私人助理,Lambda 已向您透露所有访问代码都是“幸运三元组”,以便更容易在列表中找到它们。 “幸运三元组”是一个元组 (x,y,z),其中 x 除以 y,y 除以 z,例如 (1,2,4)。有了这些信息,您就可以确定哪个列表包含与您准备进入时门上锁的数量相匹配的访问代码数量(例如,如果有 5 个密码,您需要找到一个列表带有 5 个“幸运三重”访问代码)。

编写一个函数 solution(l),它接受一个正整数列表 l 并计算 (li,lj,lk) 的“幸运三元组”的数量,其中列表索引满足 i

例如,[1,3,4,5,6] 有三元组:[1,4],[1,6],使解决方案 3 一共。

示例测试用例

-- Python cases --
Input:
solution.solution([1,6])
Output:
    3

Input:
solution.solution([1,1,1])
Output:
    1

我不确定是优化问题还是逻辑问题

我的代码通过了 4/5 个测试用例。第 5 个也是最后一个测试用例失败

def solution(l):
    if len(l) < 3:
        return 0
    triplet_count = 0
    lp = 0
    for lp in xrange(len(l)-2):
        mp = lp+1
        while(mp < len(l)-1):
            while(l[mp] % l[lp] != 0 and mp < len(l)-1):
                mp += 1
            for rp in xrange(mp+1,len(l)):
                if(l[rp] % l[mp] == 0):
                    triplet_count += 1
            mp += 1
#    print(triplet_count)
    return triplet_count

#           lp,mp,rp
# solution([1,6])

有什么建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)