关系问题

已知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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 12,950评论 0 13
  • 《孩子“网瘾”问题是亲子关系问题》这篇文章包括以下6个内容。 1、“家长访谈”:淡了当下家长最关注的问题;孩子...
    金名简书阅读 3,214评论 0 1
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,134评论 0 9
  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 6,169评论 0 6
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,150评论 0 13