Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
24
Поиск пути между аэропортами с применением обхода в глубину
Компании, где спрашивали:
Navio
Условие задачи
Необходимо реализовать функцию, которая определит любую возможную последовательность перелётов от исходного аэропорта до конечного. Функция принимает три аргумента: код аэропорта отправления, код аэропорта назначения и функцию‑поставщик билетов. Результатом работы функции должен быть Promise, который либо разрешается массивом всех промежуточных пунктов (например, ['A','B','C']), либо строкой "no way", если путь недоступен.
Гарантируется, что для заданных пунктов существует либо один единственный маршрут, либо вовсе нет (нет ситуаций с несколькими альтернативными ветвями). При поиске нельзя запускать несколько запросов одновременно, а также запрещено использовать синтаксис async/await и генераторы.
const flights = [
['A', 'B'],
['A', 'С'],
['A', 'D'],
['A', 'O'],
['D', 'K'],
['D', 'L'],
['D', 'M'],
['M', 'Q'],
['M', 'Z'],
['O', 'P'],
['L', 'G'],
['L', 'F'],
['F', 'Y'],
];
findPath('A', 'N', fetchFlighting).then(console.log) // Promise.resolve(['A', 'D', 'N'])
findPath('A', 'Q', fetchFlighting).then(console.log) // Promise.resolve(["A", "D", "M", "Q"])
findPath('A', 'W', fetchFlighting).then(console.log) // 'no way'