Назад к задачам
Junior — Senior
10

Определение пути перелёта между двумя пунктами

Компании, где спрашивали:

ЯндексЯндекс
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Реализуйте функцию, получающую начальную и конечную точку и асинхронный метод fetchFlights, который возвращает список доступных направлений из указанного города. Функция должна вернуть Promise.resolve с массивом пунктов, образующих маршрут, либо Promise.reject с ошибкой, содержащей текст "No way".

// метод, возвращающий список прямых рейсов из города
function fetchFlights(from: string): Promise<string[]>;

// Пример графа маршрутов: {A: [B, D], B: [C, N, Z], D: [E, F], F: [S]}

findPath('A', 'N', fetchFlights) // Promise.resolve(['A', 'B', 'N'])
findPath('A', 'S', fetchFlights) // Promise.resolve(['A', 'D', 'F', 'S'])
findPath('B', 'S', fetchFlights) // Promise.reject(new Error('No way'))

// реализация функции поиска составного авиаперелёта
function findPath(start, end, fetchFlights) {
    // ваш код здесь
}