Étant donnée une liste L de relations qui définit un graphe orienté acyclique.

Vous devez complétez la fonction is_ancestor qui retourne True si b est un ancêtre de a dans le graphe.

La liste L est une liste de tuples entiers (x, y) tels que le graphe a un arc du sommet x au sommet y.

Le graphe est garanti être un arbre ou une forêt (chaque sommet a au plus un arc entrant).

Exemples :

L = [(0, 1)]

Ici, c'est un arbre, avec deux sommets, et 0 est un ancêtre de 1. Donc

  • is_ancestor(L, 1, 0) doit retourner True

  • is_ancestor(L, 0, 1) doit retourner False

Avec un graphe plus complexe

L = [(4, 5), (7, 8), (0, 2), (1, 3), (2, 6), (0, 1), (1, 4)]
  • is_ancestor(L, 5, 1) doit retourner True

  • is_ancestor(L, 4, 6) doit retourner False

Afficher l'aide
  • Utilisez un dictionnaire pour tracer rapidement le parent de chaque enfant.

  • Remontez la chaîne des parents à partir du sommet cible jusqu'à ce que vous trouviez l'ancêtre recherché ou que vous atteigniez la racine.

Deviens membre Premium magic_button

Accède à la solution de cet exercice en devenant Membre Premium 🚀

Premium

  • check +100h de formations
  • check +180 exercices de code
  • check +100h de mentorats en rediffusion
  • check 20 projets
  • check Mentorats groupés hebdomadaires
  • check Support individuel avec nos mentors
Découvrir les formules
Voir le détail des fonctionnalités
# Le code de départ accessible pour les membres Premium
Un instant...
terminal

Résultats

Deviens membre Premium magic_button

Accède aux tests unitaires pour vérifier ton code en devenant Membre Premium 🚀

Premium

  • check +100h de formations
  • check +180 exercices de code
  • check +100h de mentorats en rediffusion
  • check 20 projets
  • check Mentorats groupés hebdomadaires
  • check Support individuel avec nos mentors
Découvrir les formules
Voir le détail des fonctionnalités

Bravo, tu as réussi cet exercice de code 🥳

🚀

Envoyer ma solution

Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇

Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.

Ma solution :

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.