Evaluate Division LeetCode solution in Python
1class Solution:2def calcEquation(3self, equations: List[List[str]], values: List[float], queries: List[List[str]]4) -> List[float]:5graph = dict()67for (n, d), v in zip(equations, values):8if n not in graph:9graph[n] = []10if d not in graph:11graph[d] = []1213graph[n].append((d, v))14graph[d].append((n, 1 / v))1516def dfs(node, target, product, visited):17if n not in graph or d not in graph:18return -11920if node == target:21return product2223visited.add(node)2425for neighbor, quotient in graph[node]:26if neighbor not in visited:27soln = dfs(neighbor, target, product * quotient, visited)28if soln != -1:29return soln3031return -13233solns = []34for n, d in queries:35solns.append(dfs(n, d, 1, set()))3637return solns