Comparaison
Exercice
Sujet inspiré de https://prologin.org/train/2003/qualification/comparer_des_chaines
Compléter la fonction compare(chaine1, chaine2)
sans utiliser l'opérateur de comparaison directement avec les chaînes de caractère chaine1
et chaine2
, seule la comparaison de caractères est autorisée.
def compare(chaine1, chaine2):
"""
Compare deux chaînes de caractères et renvoie la plus petite
dans l'ordre lexicographique
Paramètres :
chaine1 et chaine2 sont deux chaînes de caractères composés
uniquement de caractères minuscules.
Retour: la chaine la plus petite dans l'ordre lexicographique
"""
# à compléter
# test 1
assert compare('informatique', 'information') == 'information'
# test 2
assert compare('pyramide', 'python') == 'pyramide'
# test 3
assert compare('courge', 'courgette') == 'courge'
def compare(chaine1, chaine2):bksl-nl """bksl-nl Compare deux chaînes de caractères et renvoie la plus petitebksl-nl dans l'ordre lexicographiquebksl-nlbksl-nl Paramètres :bksl-nl chaine1 et chaine2 sont deux chaînes de caractères composésbksl-nl uniquement de caractères minuscules.bksl-nlbksl-nl Retour: la chaine la plus petite dans l'ordre lexicographiquebksl-nl """bksl-nlbksl-nlassert compare('informatique', 'information') == 'information'bksl-nlassert compare('pyramide', 'python') == 'pyramide'bksl-nlassert compare('courge', 'courgette') == 'courge'bksl-nlbksl-nldef compare(chaine1, chaine2):bksl-nl """bksl-nl Compare deux chaînes de caractères et renvoie la plus petitebksl-nl dans l'ordre lexicographiquebksl-nlbksl-nl Paramètres :bksl-nl chaine1 et chaine2 sont deux chaînes de caractères composésbksl-nl uniquement de caractères minuscules.bksl-nlbksl-nl Retour: la chaine la plus petite dans l'ordre lexicographiquebksl-nl """bksl-nl n1 = len(chaine1)bksl-nl n2 = len(chaine2)bksl-nl if n1 >= n2:bksl-nl lmin = n2bksl-nl cmin = chaine2bksl-nl else:bksl-nl lmin = n1bksl-nl cmin = chaine1bksl-nl for k in range(lmin):bksl-nl if chaine1[k] < chaine2[k]:bksl-nl return chaine1bksl-nl elif chaine1[k] > chaine2[k]:bksl-nl return chaine2bksl-nl return cminbksl-nl
A
Z