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.

🐍 Script Python
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'
###
# Tests de basebksl-nlbksl-nlbksl-nl# test 1bksl-nlassert compare('informatique', 'information') == 'information'bksl-nlbksl-nl# test 2bksl-nlassert compare('pyramide', 'python') == 'pyramide'bksl-nlbksl-nl# test 3bksl-nlassert compare('courge', 'courgette') == 'courge'bksl-nlbksl-nlbksl-nl# Test cachésbksl-nlbksl-nl# test 4bksl-nlassert compare('', 'courgette') == ''bksl-nl# test 5bksl-nlassert compare('fille', 'fille') == 'fille'bksl-nlbksl-nl 5/5

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