Aller au contenu

Ep 24

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Le nombre d’occurrences d’un caractùre dans une chaüne de caractùre est le nombre d’apparitions de ce caractùre dans la chaüne.

Exemples :

  • le nombre d’occurrences du caractĂšre ‘o’ dans ‘bonjour’ est 2 ;
  • le nombre d’occurrences du caractĂšre ‘b’ dans ‘BĂ©bé’ est 1 ;
  • le nombre d’occurrences du caractĂšre ‘B’ dans ‘BĂ©bé’ est 1 ;
  • le nombre d’occurrences du caractĂšre ‘ ‘ dans ‘Hello world !’ est 2.

On cherche les occurrences des caractùres dans une phrase. On souhaite stocker ces occurrences dans un dictionnaire dont les clefs seraient les caractùres de la phrase et les valeurs l’occurrence de ces caractùres.

Par exemple : avec la phrase 'Hello world !' le dictionnaire est le suivant :

🐍 Script Python
    `{'H': 1,'e': 1,'l': 3,'o': 2,' ': 2,'w': 1,'r': 1,'d': 1,'!': 1}`

L’ordre des clefs n’a pas d’importance.

Écrire une fonction nbr_occurrences prenant comme paramùtre une chaüne de caractùres chaine et renvoyant le dictionnaire des nombres d’occurrences des caractùres de cette chaüne.

RĂ©ponse

Complétez le code ci-dessous

###
# Mettez votre code icibksl-nlbksl-nl



Solution

###
def nbrpy-undoccurrences(chaine):bksl-nl nbpy-undocc = {}bksl-nl for caractere in chaine:bksl-nl if caractere in nbpy-undocc:bksl-nl nbpy-undocc[caractere] += 1bksl-nl else:bksl-nl nbpy-undocc[caractere] = 1bksl-nl return nbpy-undoccbksl-nlbksl-nl



EXERCICE 2⚓

La fonction fusion prend deux listes lst1, lst2 d’entiers triĂ©es par ordre croissant et les fusionne en une liste triĂ©e lst12 qu’elle renvoie.

Le code Python de la fonction fusion est :

Question
🐍 Script Python
1

Exempe :

🐍 Script Python
    >>> fusion([1, 6, 10],[0, 7, 8, 9])
    [0, 1, 6, 7, 8, 9, 10]
RĂ©ponse

Complétez le code ci-dessous

###
def fusion(lst1,lst2):bksl-nl n1 = len(lst1)bksl-nl n2 = len(lst2)bksl-nl lst12 = [0] py-str (n1 + n2)bksl-nl i1 = 0bksl-nl i2 = 0bksl-nl i = 0bksl-nl while i1 < n1 and ... :bksl-nl if lst1[i1] < lst2[i2]:bksl-nl lst12[i] = ...bksl-nl i1 = ...bksl-nl else:bksl-nl lst12[i] = lst2[i2]bksl-nl i2 = ...bksl-nl i += 1bksl-nl while i1 < n1:bksl-nl lst12[i] = ...bksl-nl i1 = i1 + 1bksl-nl i = ...bksl-nl while i2 < n2:bksl-nl lst12[i] = ...bksl-nl i2 = i2 + 1bksl-nl i = ...bksl-nl return lst12bksl-nlbksl-nl



Solution

###
def fusion(lst1, lst2):bksl-nl n1 = len(lst1)bksl-nl n2 = len(lst2)bksl-nl lst12 = [0] py-str (n1 + n2)bksl-nl i1 = 0bksl-nl i2 = 0bksl-nl i = 0bksl-nl while i1 < n1 and i2 < n2 :bksl-nl if lst1[i1] < lst2[i2]:bksl-nl lst12[i] = lst1[i1]bksl-nl i1 = i1 + 1bksl-nl else:bksl-nl lst12[i] = lst2[i2]bksl-nl i2 = i2 + 1bksl-nl i += 1bksl-nl while i1 < n1:bksl-nl lst12[i] = lst1[i1]bksl-nl i1 = i1 + 1bksl-nl i = i + 1bksl-nl while i2 < n2:bksl-nl lst12[i] = lst2[i2]bksl-nl i2 = i2 + 1bksl-nl i = i + 1bksl-nl return lst12bksl-nlbksl-nl