Middle+
/* Tenemos un conjunto de billetes de la siguiente forma: [ { from: 'Londres', to: 'Moscú' }, { from: 'NY', to: 'Londres' }, { from: 'Moscú', to: 'San Petersburgo' }, ... ] De estos billetes se puede construir una única ruta continua. No hay ciclos ni repeticiones en la ruta. Se necesita escribir un programa que devuelva estos mismos objetos de billetes en el orden de la ruta. */ function getRoute(tickets = [], startCity) { // tu código aquí } console.clear() console.log(getRoute([ { from: 'Londres', to: 'Moscú' }, { from: 'NY', to: 'Londres' }, { from: 'Moscú', to: 'San Petersburgo' }, ], 'NY')); /* [ { from: 'NY', to: 'Londres' }, { from: 'Londres', to: 'Moscú' }, { from: 'Moscú', to: 'San Petersburgo' }, ] */
sobes.tech AI
Respuesta de la IA
Для восстановления маршрута из набора билетов можно построить словарь (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, пока не дойдёт до конечного пункта.