Aller au contenu

Index des sujets 2022

Corrigé sujet 14 - Année : 2022

Sujet 14 - 2022

Exercice 1

1
2
3
4
5
def correspond(mot,mot_a_trous):
    for indice in range(len(mot)):
        if mot_a_trous[indice]!="*" and mot[indice]!=mot_a_trous[indice]:
            return False
    return True

Commentaire

Le sujet ne précise pas le comportement attendu si mot et mot_a_trous n'ont pas la même longueur.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
def est_cyclique(plan):
    '''
    Prend en paramètre un dictionnaire `plan` correspondant 
    à un plan d'envoi de messages entre `N` personnes A, B, C, 
    D, E, F ...(avec N <= 26).
    Renvoie True si le plan d'envoi de messages est cyclique
    et False sinon. 
    '''
    personne = 'A'
    N = len(plan)                          
    for i in range(N-1): #(1)
        if plan[personne] == 'A': #(2)
            return False
        else:
            personne = plan[personne] #(3)
    return True
  1. Attention à ne pas parcourir en totalité le dictionnaire (sinon on trouvera forcement un cycle). On s'arrête donc à l'avant dernier.
  2. C'est le fait de retomber sur la personne de départ (donc 'A') qui indique qu'on a trouvé un cycle.
  3. Passage à la personne suivante (revoir si besoin les dictionnaires)