Une séquence est dite strictement monotone si elle est soit strictement croissante, soit strictement décroissante. Pour créer une fonction strict_monotone qui vérifie ce critère dans une liste d'entiers, nous devons vérifier les deux conditions possibles et déterminer si l'une d'entre elles est satisfaite.
Voici comment tu peux implémenter cela en Python :
def strict_monotone(liste):
if len(liste) < 2:
# Une liste avec moins de 2 éléments est considérée comme monotone
return True
is_increasing = True
is_decreasing = True
for i in range(len(liste) - 1):
if liste[i] >= liste[i + 1]: # Si la série n'est pas strictement croissante
is_increasing = False
if liste[i] <= liste[i + 1]: # Si la série n'est pas strictement décroissante
is_decreasing = False
return is_increasing or is_decreasing
# Exemples d'utilisation :
print(strict_monotone([1, 2, 3, 4])) # Renvoie True (strictement croissant)
print(strict_monotone([4, 3, 2, 1])) # Renvoie True (strictement décroissant)
print(strict_monotone([1, 2, 2, 3])) # Renvoie False (ni strictement croissant, ni décroissant)
print(strict_monotone([1])) # Renvoie True (considéré comme monotone)
print(strict_monotone([])) # Renvoie True (considéré comme monotone)
Cette fonction initialise deux drapeaux (is_increasing et is_decreasing) à True. Elle parcourt la liste et ajuste ces valeurs en fonction des comparaisons entre les éléments adjacents. Si un élément n'est pas strictement croissant ou décroissant par rapport à son successeur, le drapeau approprié est mis à False. La liste est strictement monotone si au moins un des deux drapeaux reste True à la fin.
Testez le code en ligne :