Middle
/* Wir haben eine Sammlung von Tickets wie folgt: [ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Spb' }, ... ] Aus diesen Tickets kann eine einzige, ununterbrochene Route erstellt werden. Es gibt keine Schleifen oder Wiederholungen in der Route. Schreiben Sie eine Funktion, die diese gleichen Ticket-Objekte in der Reihenfolge der Route zurückgibt. */ function getRoute(tickets = [], startCity = 'NY') { // your code here }
sobes.tech KI
Antwort von AI
Для решения задачи нужно упорядочить билеты так, чтобы каждый следующий билет начинался там, где закончился предыдущий. Поскольку маршрут единственный и непрерывный, можно построить словарь (Map) от города отправления к билету, а затем, начиная с начального города, последовательно брать следующий билет.
Пример решения на JavaScript:
function getRoute(tickets = [], startCity = 'NY') {
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;
}
// Пример использования:
const tickets = [
{ from: 'London', to: 'Moscow' },
{ from: 'NY', to: 'London' },
{ from: 'Moscow', to: 'Spb' },
];
console.log(getRoute(tickets, 'NY'));
// Выведет билеты в порядке: NY->London, London->Moscow, Moscow->Spb