У нас есть набор билетов вида:

Для восстановления маршрута из набора билетов можно построить словарь (Map) от города отправления к билету, а затем последовательно идти от стартового города, выбирая следующий билет по ключу.

Короткий ответ

Что ответить на собеседовании

Для восстановления маршрута из набора билетов можно построить словарь (Map) от города отправления к билету, а затем последовательно идти от стартового города, выбирая следующий билет по ключу.

Подробный разбор

Ответ с пояснениями

Условие

/* У нас есть набор билетов вида:

[ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'SPb' }, ... ]

Из этих билетов можно построить единственный, неразрывный маршрут. Петель и повторов в маршруте нет.

Нужно написать программу, которая возвращает эти же объекты билетов в порядке следования по маршруту. */

function getRoute(tickets = [], startCity) { // your code here }

console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'SPb' }, ], 'NY')); /* [ { from: 'NY', to: 'London' }, { from: 'London', to: 'Moscow' }, { from: 'Moscow', to: 'SPb' }, ] */

Ответ

Для восстановления маршрута из набора билетов можно построить словарь (Map) от города отправления к билету, а затем последовательно идти от стартового города, выбирая следующий билет по ключу.

Пример решения на JavaScript:

function getRoute(tickets = [], startCity) {
  const map = new Map();
  tickets.forEach(ticket => {
    map.set(ticket.from, ticket);
  });

  const route = [];
  let currentCity = startCity;

  while (map.has(currentCity)) {
    const ticket = map.get(currentCity);
    route.push(ticket);
    currentCity = ticket.to;
  }

  return route;
}

console.log(getRoute([
  { from: 'London', to: 'Moscow' },
  { from: 'NY', to: 'London' },
  { from: 'Moscow', to: 'SPb' },
], 'NY'));

Этот код создаёт карту для быстрого поиска билета по городу отправления и затем строит маршрут, начиная с startCity, пока не дойдёт до конечного пункта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее