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, докато не достигне крайната точка.