Задача

Yandex Coderun

Вы работаете над поиском авиабилетов для Яндекс Путешествий. Пользователи часто хотят летать между городами, которые могут не иметь прямого авиасообщения. Ваша задача — реализовать функцию findPath, которая будет строить маршрут между двумя городами.

Формат ввода. Вы получаете на вход 3 аргумента:

  • from — откуда летим (код аэропорта);
  • to — куда летим (код аэропорта);
  • fetchFlights(from) — функция, которая возвращает список кодов аэропортов, до которых можно долететь напрямую из from.

Сеть маршрутов представляет собой дерево (граф без циклов), где в каждый аэропорт ведёт не более одного прямого рейса.

Формат вывода. Верните массив кодов аэропортов, представляющий полный маршрут от from до to включительно. Если такого маршрута не существует, необходимо вернуть пустой массив.

Пример

const FLIGHTS = {
    A: ['B', 'D'],
    B: ['C', 'N', 'Z'],
    D: ['E', 'F'],
    F: ['S'],
};
 
const fetchFlights = (from) => Promise.resolve(FLIGHTS[from]);

Решение

См. также