< Zpět na seznam úloh

C1 Turistické značení

var names = ["ukazatele"]
var mainFunction = "main";
var datasets = [
  {arg: {"sněžka": "luční bouda", "výrovka": "pec pod sněžkou", "luční bouda": "výrovka", "pec pod sněžkou": "sněžka"}, out: ["sněžka", "luční bouda", "výrovka", "pec pod sněžkou"]},
  {arg: {'jeseník': 'šerák', 'karlova studánka': 'vrbno pod pradědem', 'keprník': 'červená hora', 'malý děd': 'praděd', 'praděd': 'karlova studánka', 'rejvíz': 'jeseník', 'vrbno pod pradědem': 'rejvíz', 'výrovka': 'malý děd', 'červená hora': 'výrovka', 'šerák': 'keprník'}, out: ["jeseník", "šerák", "keprník", "červená hora", "výrovka", "malý děd", "praděd", "karlova studánka", "vrbno pod pradědem", "rejvíz"]}
]

V téhle úloze turistická značka tvoří jeden dlouhý okruh, a na každém místě je ukazatel, který nás posílá na další místo. (Abychom si to udělali jednodušší, značka nemá nikde konec ani nevytváří rozcestí.) Každé místo je označené textem. Chceme vypsat celý okruh, kterým značka prochází.

Program dostává slovník turistických ukazatelů a má určit, v jakém pořadí jimi značka prochází. Každý ukazatel ve vstupním slovníku je ve formátu odkud: kam. Klíč určuje místo, kde se ukazatel nachází, a hodnota určuje následující místo na značce. Výstupem má být seznam míst v pořadí podle značky a rozumí se samo sebou, že z konce seznamu vede značka zase na začátek.

V zadání se vyskytuje typ slovník. Díky tomu může být program velice jednoduchý. Než se do řešení pustíte, potřebujete ale pochopit, jak se slovníky používají. Kromě odkazu na začátku odstavce může pomoct slovníkový tahák.

Další podrobnosti:

def main(ukazatele):
  vysledek = []
  mista = list(ukazatele)
  zacatek = mista[0]
  while ukazatele:
    ukazatele.pop(zacatek)
  return vysledek