399. Evaluate Division
Description
You are given an array of variable pairs equations
and an array of real numbers values
, where equations[i] = [A<sub>i</sub>, B<sub>i</sub>]
and values[i]
represent the equation A<sub>i</sub> / B<sub>i</sub> = values[i]
. Each A<sub>i</sub>
or B<sub>i</sub>
is a string that represents a single variable.
You are also given some queries
, where queries[j] = [C<sub>j</sub>, D<sub>j</sub>]
represents the j^th
query where you must find the answer for C<sub>j</sub> / D<sub>j</sub> = ?
.
Return the answers to all queries. If a single answer cannot be determined, return -1.0
.
Note: The input is always valid. You may assume that evaluating the queries will not result in division by zero and that there is no contradiction.
Note: The variables that do not occur in the list of equations are undefined, so the answer cannot be determined for them.
Example 1:
1 | Input: equations = [["a","b"],["b","c"]], values = [2.0,3.0], queries = [["a","c"],["b","a"],["a","e"],["a","a"],["x","x"]] |
Example 2:
1 | Input: equations = [["a","b"],["b","c"],["bc","cd"]], values = [1.5,2.5,5.0], queries = [["a","c"],["c","b"],["bc","cd"],["cd","bc"]] |
Example 3:
1 | Input: equations = [["a","b"]], values = [0.5], queries = [["a","b"],["b","a"],["a","c"],["x","y"]] |
Constraints:
1 <= equations.length <= 20
equations[i].length == 2
- 1 <= Ai.length, Bi.length <= 5
values.length == equations.length
0.0 < values[i] <= 20.0
1 <= queries.length <= 20
queries[i].length == 2
- 1 <= Cj.length, Dj.length <= 5
- Ai, Bi, Cj, Dj consist of lower case English letters and digits.
Hints/Notes
- 2025/04/23 Q1
- dfs
- Leetcode solution
Solution
Language: C++
1 | class Solution { |