Middle+
/* Бизде төмөнкү форматта билеттер топтому бар: [ { from: 'Лондон', to: 'Москва' }, { from: 'NY', to: 'Лондон' }, { from: 'Москва', to: 'Санкт-Петербург' }, ... ] Бул билеттерден бир гана үзгүлтүксүз маршрут түзүүгө болот. Маршрутта циклдер жана кайталануу жок. Бул ошол эле билет объекттерин маршрут боюнча тартипте кайтарган программа жазыш керек. */ function getRoute(tickets = [], startCity) { // кодуңузду бул жерге жазгыла } console.clear() console.log(getRoute([ { from: 'Лондон', to: 'Москва' }, { from: 'NY', to: 'Лондон' }, { from: 'Москва', to: 'Санкт-Петербург' }, ], 'NY')); /* [ { from: 'NY', to: 'Лондон' }, { from: 'Лондон', to: 'Москва' }, { from: 'Москва', to: 'Санкт-Петербург' }, ] */
sobes.tech AI
AIден жооп
Для восстановления маршрута из набора билетов можно построить словарь (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, пока не дойдёт до конечного пункта.