LeetcodeGraph
399. Evaluate Division
class Solution:
def calcEquation(self, equations: list[list[str]], values: list[float], queries: list[list[str]]) -> list[float]:
G = defaultdict(dict)
for (a, b), v in zip(equations, values):
G[a][a] = G[b][b] = 1
G[a][b] = v
G[b][a] = 1 / v
for k in G:
for i in G[k]:
for j in G[k]:
G[i][j] = G[i][k] * G[k][j] if i != j else 1
result = []
for a, b in queries:
result.append(G[a].get(b, -1))
return result