Medium
Uber

Currency Conversion via Exchange Rate Graph Coding / DSA Interview

Given a list of direct exchange rates, find the effective conversion rate between any two currencies by multiplying rates along a path in a directed graph.

1. Problem Statement

You are building a currency exchange system. You receive a list of direct exchange rates, each described as (from_currency, to_currency, rate), meaning 1 unit of from_currency buys `rate` units of to_currency. Design and implement a system that: 1. Ingests the list of exchange rates. 2. Answers queries: given a source currency and a target currency, return the effective conversion rate (or indicate that conversion is not possible). Assume inverse rates are implied: if A→B = r, then B→A = 1/r. Assume every provided rate is positive. If the same directed pair appears multiple times, the last provided rate replaces earlier ones, and the final rate table is internally consistent so any valid path yields the same effective rate. Return 1.0 for a known currency converted to itself, and -1.0 when either currency is unknown or no path exists. Start with any clarifying questions.

2. Live Coding Format

Work in the provided coding workspace while explaining your decisions to the live interviewer. Validation may use inline tests, examples, comments, or a verbal walkthrough.

3. Key Focus Areas

  • 1
    Deterministic contract: duplicate pairs, self-conversion, unknown currencies
  • 2
    Graph construction from rate pairs
  • 3
    Implicit inverse edges (A→B at rate r implies B→A at rate 1/r)
  • 4
    Path search: BFS or DFS with visited set
  • 5
    Path product computation
  • 6
    Disconnected currencies: no-path sentinel
  • 7
    Cycle detection and numeric precision discussion

4. What Strong Candidates Should Demonstrate

  • Model exchange rates as a directed weighted graph with implicit inverse edges under a consistent-rate contract.
  • Find any conversion path using BFS or DFS and compute the path product.
  • Handle duplicate-rate ingestion, disconnected currencies, and self-conversions deterministically.
  • Identify and discuss the numerical instability caused by chained floating-point products.

Want interactive feedback?

Practice this problem in the live coding workspace while the interviewer probes your clarification, implementation, trade-offs, and validation.

Continue to Dashboard

Core Concepts

GraphsBFS / DFSHash MapsNumerical Reasoning

Continue preparing

Build a complete software engineer mock interview plan

Related Coding / DSA

Cheapest Route Within a Stop Limit

Given one-way routes between cities each with a cost, find the cheapest total cost from a source city to a destination city using at most k intermediate stops.

Related Coding / DSA

Determine a Valid Course Completion Order

Given a number of courses and a list of prerequisite pairs, determine a valid order to complete all courses, or report that no valid order exists.

Related Coding / DSA

Fewest Moves to Solve a Sliding Tile Puzzle

Given a small 2-by-3 sliding tile puzzle board with one blank space, find the minimum number of adjacent tile slides needed to reach a specified target arrangement, or report it is unreachable.