Dataford
Interview QuestionsInterview GuidesExperiencesCoaching
New
Pricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackCoaching1:1 coaching with people at your target companiesSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Minimum Transfers Between Stops
00:00
5 left

Minimum Transfers Between Stops

MediumPython

Problem

Snap operates shuttle routes between Snap offices and event venues. Given the stops served by each shuttle route, a starting stop, and a destination stop, return the minimum number of transfers needed to reach the destination. A passenger may board any route serving the current stop and may ride it to any of its stops. Return -1 if the destination is unreachable.

A direct ride requires 0 transfers. If reaching the destination requires boarding two different routes, the answer is 1. If start_stop == end_stop, return 0.

Formal Specification

Implement min_transfers(routes, start_stop, end_stop).

  • routes is a list of routes, where routes[i] is a list of integer stop IDs served by route i.
  • start_stop and end_stop are integer stop IDs.
  • Return an integer representing the minimum number of route changes, or -1 when no route sequence can connect the stops.
  • A route may contain many stops, and stops can be shared by multiple routes.

Constraints

  • 1 <= len(routes) <= 10^5
  • The total number of stops across all routes is at most 2 * 10^5
  • 0 <= start_stop, end_stop <= 10^9
  • Each route contains no duplicate stop IDs
  • A stop can be served by multiple routes

Function Signature

def min_transfers(routes, start_stop, end_stop):
Interviewer

Your question is Minimum Transfers Between Stops. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
Sign up free to run your codeLog inLn 2
Run your code to see test output here.