leetcode-399-除法求值
方法一:dfs+图
class Solution: def calcEquation(self, equations: List[List[str]], values: List[float], queries: List[List[str]]) -> List[float]: graph = {} for (x,y),v in zip(equations,values): if x not in graph: graph[x] = {y:v} else: graph[x][y] = v if y not in graph: graph[y] = {x:1/v} else: graph[y][x] = 1/v def dfs(x,y): if x not in graph: return -1 if x == y: return 1 for node in graph[x].keys(): if node == y: return graph[x][node] elif node not in visited: visited.add(node) v = dfs(node,y) if v!= -1: return graph[x][node]*v return -1 res = [] for x,y in queries: visited = set() res.append(dfs(x,y)) return res