Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA
# ceci permet de recharger les modules
# lorsqu'ils ont été modifiés en dehors du notebook

# pour commodité lors du développement des exercices

%load_ext autoreload
%autoreload 2

Niveaux de difficulté

La plupart de (tous ?) ces exercices sont inspirés d’énoncés trouvés sur https://codewars.com/ ; dans ces cas-là j’indique la référence, ainsi que la difficulté affichée sur codewars ; l’échelle est à la japonaise, 1 kyu c’est très difficile et 8 kyu c’est très simple.


Trouver la somme

inspiré de https://www.codewars.com/kata/52c31f8e6605bcc646000082 (6 kyu)

On cherche dans une liste deux nombres (à des indices différents) dont la somme est fixée

Hypothèses : on admet (pas besoin de le vérifier donc) que les entrées sont correctes, c’est-à-dire ne contiennent que des nombres et qu’il existe une solution.

Unicité : n’importe quelle solution est valable en cas de solutions multiples ; toutefois pour des raisons techniques, la correction automatique ne teste votre code que sur des entrées où la solution est unique.

# charger l'exercice et afficher un exemple

from corrections.exo_two_sum import exo_two_sum
exo_two_sum.example()
Loading...
# indice : il y a peut-être des choses utiles dans ce module
# import itertools

def two_sum(data, target):
    ...
exo_two_sum.correction(two_sum)
Loading...

Plus grande distance

inspiré de https://www.codewars.com/kata/5442e4fc7fc447653a0000d5 (6 kyu)

from corrections.exo_longest_gap import exo_longest_gap

exo_longest_gap.example()
Loading...
# votre code
def longest_gap(liste):
    ...
exo_longest_gap.correction(longest_gap)
Loading...

Meeting

inspiré de https://www.codewars.com/kata/59df2f8f08c6cec835000012 (6 kyu)

Je vous invite à lire l’énoncé directement sur codewars.
Notez bien toutefois que, contrairement à ce qui est demandé sur codewars, notre variante ne met pas le texte en majuscule.

Rappel sur la concaténation des chaines remarquez aussi l’usage qu’on fait ici, pour la présentation, de la concaténation de chaines :

# rappel sur la concaténation des chaines
# grâce à la parenthèse on peut 
# se passer des \ qui sont assez vilains
x = ("une chaine unique "
     "que l'on coupe en morceaux "
     "parce qu'elle est très longue")
x
"une chaine unique que l'on coupe en morceaux parce qu'elle est très longue"
from corrections.exo_meeting import exo_meeting

exo_meeting.example()
Loading...
def meeting(string):
    ...
exo_meeting.correction(meeting)
Loading...