399. Evaluate Division

Loading Question ...

Equations are given in the format A / B = k, where A and B are variables represented as strings, and k is a real number (floating point number). Given some queries, return the answers. If the answer does not exist, return -1.0.

Example:
Given a / b = 2.0, b / c = 3.0.
queries are: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ? .
return [6.0, 0.5, -1.0, 1.0, -1.0 ].

The input is: vector<pair<string, string>> equations, vector<double>& values, vector<pair<string, string>> queries , where equations.size() == values.size(), and the values are positive. This represents the equations. Return vector<double>.

According to the example above:

equations = [ ["a", "b"], ["b", "c"] ],
values = [2.0, 3.0],
queries = [ ["a", "c"], ["b", "a"], ["a", "e"], ["a", "a"], ["x", "x"] ]. 

The input is always valid. You may assume that evaluating the queries will result in no division by zero and there is no contradiction.


Seen this question in a real interview before?  
Yes
No
When did you encounter this question?  
last week
last month
last 3 month
last 6 month
more than 6 months
other
Which stage?  
Online Assessment
Phone Interview
On Campus Interview
Onsite Interview
Don't know
Which company?  
Adobe
Aetion
Airbnb
Alibaba
Amazon
Apple
Baidu
Bloomberg
Cloudera
Coursera
Cryptic Studios
Dropbox
eBay
Epic Systems
Expedia
Facebook
Fallible
Games
Gilt Groupe
GoDaddy
Goo
Google
Hedvig
Helix
Houzz
Hulu
Indeed
Intuit
IXL
LinkedIn
LiveRamp
Lyft
MAQ Software
Mathworks
Microsoft
NetEase
Netsuite
Palantir
Palantir Technologies
Pinterest
Pocket Gems
Poynt
Pure
Pure Storage
Rackspace
Radius
Riot
Riot Games
Samsung
Snapchat
Square
Storage
Tencent
TinyCo
Twitter
Two Sigma
Uber
Valve
WAP
Works Applications
Yahoo
Yahoo!
Yelp
Zappos
Zenefits