已知a,b以及b,c的關(guān)系,如何得到a,c關(guān)系
題目

399. Evaluate Division
解法
1、用到Python中的collections模塊,collections.defaultdict()比傳統(tǒng)dict更加靈活,對(duì)不存在的key返回值為None。(其實(shí)也可以直接用{})
2、字典內(nèi)可以構(gòu)建字典,多層字典疊加的方法。
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