Aller au contenu

Index des sujets 2022

Corrigé sujet 10 - Année : 2022

Sujet 10 - 2022

Exercice 1

1
2
3
4
5
6
7
8
def occurrence_lettres(phrase):
    occ = {}
    for caractere in phrase:
        if caractere in occ:
            occ[caractere] += 1
        else:
            occ[caractere]=1
    return occ

Commentaire

  • Bon exercice pour revoir l'utilisation des dictionnaires.
  • Le terme occurrence est utilisé avec le sens habituellement attribué à nombre d'occurrences
  • Dans le nom de la fonction dans l'énoncé, occurence s'écrit avec un seul r, ce serait deux sans faute d'orthographe.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def fusion(L1,L2):
    n1 = len(L1)
    n2 = len(L2)
    L12 = [0]*(n1+n2)
    i1 = 0
    i2 = 0
    i = 0
    while i1 < n1 and i2<n2 : #(1)
        if L1[i1] < L2[i2]:
            L12[i] = L1[i1] #(2)
            i1 = i1 + 1
        else:
            L12[i] = L2[i2]
            i2 = i2 + 1 
        i += 1
    while i1 < n1:
        L12[i] = L1[i1] #(3)
        i1 = i1 + 1
        i = i + 1
    while i2 < n2:
        L12[i] = L2[i2]
        i2 = i2 + 1
        i = i + 1
    return L12
  1. i1 est l'indice de parcours de L1 (de longueur n1) i2 est l'indice de parcours de L2 (de longueur n2)
  2. On se trouve dans le cas où le plus petit élément se trouve dans L1, c'est donc lui qui est ajouté à liste fusionnée L12.
  3. On a atteint la fin de l'une des listes, il reste donc à ajouter les éléments restants de l'autre liste.