Sobes.tech
Middle

/* Tenemos un conjunto de billetes de la siguiente forma: [ { from: 'Londres', to: 'Moscú' }, { from: 'NY', to: 'Londres' }, { from: 'Moscú', to: 'Spb' }, ... ] De estos billetes se puede construir una única ruta continua. No hay bucles ni repeticiones en la ruta. Escribir una función que devuelva estos mismos objetos de billetes en el orden de la ruta. */ function getRoute(tickets = [], startCity = 'NY') { // your code here }

sobes.tech AI

Respuesta de la IA

Для решения задачи нужно упорядочить билеты так, чтобы каждый следующий билет начинался там, где закончился предыдущий. Поскольку маршрут единственный и непрерывный, можно построить словарь (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