Sobes.tech
Middle

Այս տոմսերից կարելի է կառուցել միակ, անընդհատ երթուղի: Երթուղու մեջ չկա ցիկլեր կամ կրկնություններ: Դուք պետք է գրել ծրագիր, որը վերադարձնում է այդ նույն տոմսերի օբյեկտները երթուղու հաջորդականությամբ: ```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 AI

Պատասխան AI-ից

Ներկայացված կոդում բացակայում է սկզբնական քաղաքի startcity սահմանումը։ Որպեսզի կառուցեք միակ երթուղի տոմսերի հավաքածուից, անհրաժեշտ է՝

  1. Գտնել քաղաքը, որի վրա ոչ ոք չի գալիս — դա կլինի սկզբնականը։
  2. Ստեղծել Map՝ արագ որոնելու համար տոմսը ըստ ուղևորության քաղաքին։
  3. Իտերատիվ անցնել տոմսերով, սկսելով սկզբնական քաղաքից, ձևավորելով երթուղին։

Թույլատրված և լրիվ լուծման օրինակ՝

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

  // Գտնել սկզբնական քաղաքը — այն, որը կա from-ում, բայց չկա to-ում
  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' },
]));

Արդյունք՝

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

Այսպիսով, ծրագիրը վերականգնում է երթուղին ճիշտ հերթականությամբ։