微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决谷歌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 举报,一经查实,本站将立刻删除。