Sobes.tech
Middle

Aus diesen Tickets lässt sich eine einzige, ununterbrochene Route erstellen. Es gibt keine Schleifen oder Wiederholungen in der Route. Du musst ein Programm schreiben, das diese gleichen Ticket-Objekte in der Reihenfolge der Route zurückgibt. ```javascript function getRoute(tickets = []) { const cities = new Map(); for (const ticket of tickets) { cities.set(ticket.from, ticket); } const result = []; let currentCity = startcity; while (cities.has(currentCity)) { const next = cities.get(currentCity); result.push(next); currentCity = next.to; } return result; } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Spb' }, ])); ```

sobes.tech KI

Antwort von AI

Im präsentierten Code fehlt die Definition der Startstadt startcity. Um eine einzige Route aus dem Satz der Tickets zu erstellen, muss man:

  1. Die Stadt finden, aus der niemand ankommt — das ist der Start.
  2. Eine Map erstellen, um schnell ein Ticket nach Abfahrtsstadt zu suchen.
  3. Iterativ die Tickets durchgehen, beginnend mit der Startstadt, um die Route zu bilden.

Beispiel für eine korrigierte und vollständige Lösung:

function getRoute(tickets = []) {
  const fromCities = new Set(tickets.map(t => t.from));
  const toCities = new Set(tickets.map(t => t.to));

  // Startstadt finden — die in from, aber nicht in to ist
  let startcity = null;
  for (const city of fromCities) {
    if (!toCities.has(city)) {
      startcity = city;
      break;
    }
  }

  const citiesMap = new Map();
  for (const ticket of tickets) {
    citiesMap.set(ticket.from, ticket);
  }

  const result = [];
  let currentCity = startcity;

  while (citiesMap.has(currentCity)) {
    const nextTicket = citiesMap.get(currentCity);
    result.push(nextTicket);
    currentCity = nextTicket.to;
  }

  return result;
}

console.log(getRoute([
  { from: 'London', to: 'Moscow' },
  { from: 'NY', to: 'London' },
  { from: 'Moscow', to: 'Spb' },
]));

Ausgabe:

[
  { "from": "NY", "to": "London" },
  { "from": "London", "to": "Moscow" },
  { "from": "Moscow", "to": "Spb" }
]

Auf diese Weise rekonstruiert das Programm die Route in der richtigen Reihenfolge.