美文网首页
关系问题

关系问题

作者: 大脸猫猫脸大 | 来源:发表于2019-10-11 17:57 被阅读0次

    已知a,b以及b,c的关系,如何得到a,c关系

    题目

    399. Evaluate Division

    解法

    1、用到Python中的collections模块,collections.defaultdict()比传统dict更加灵活,对不存在的key返回值为None。(其实也可以直接用{})
    2、字典内可以构建字典,多层字典叠加的方法。

        def calcEquation(self, equations, values, queries):
            """
            :type equations: List[List[str]]
            :type values: List[float]
            :type queries: List[List[str]]
            :rtype: List[float]
            """
            import collections
            res = []
            quot = collections.defaultdict(dict)
            for (a, b), val in zip(equations, values):
                quot[a][a] = quot[b][b] = 1
                quot[a][b] = val
                quot[b][a] = 1/val
            for a in quot:
                for b in quot[a]:
                    for c in quot[a]:
                        quot[b][c] = quot[a][c]/quot[a][b]
            for (a,b) in queries:
                if quot[a].get(b):
                    res.append(quot[a][b])
                else:
                    res.append(-1)
            return res
    

    相关文章

      网友评论

          本文标题:关系问题

          本文链接:https://www.haomeiwen.com/subject/tdfcyctx.html