DÉFIS
Chaque défi est inutile. Aucun n'est une perte de temps : on code pour le plaisir et on apprend pour de vrai.
60 défis
- DifficilePiles
Évaluer une expression en notation polonaise inverse (RPN)
Lire une expression en notation polonaise inverse et afficher sa valeur entière, en utilisant une pile pour l'évaluation.
polyglotteAvancé#piles#evaluation45 minmai 2026 - DifficileParsing
Évaluer une expression arithmétique avec parenthèses
Implémenter un évaluateur d'expressions arithmétiques entières supportant +, -, *, /, les parenthèses et la priorité des opérateurs, sans utiliser eval() ni bibliothèque de parsing.
polyglotteAvancé#parsing#evaluation90 minmai 2026 - MoyenArithmétique
Différence en minutes entre deux heures HH:MM
Lire deux heures au format HH:MM et afficher la durée en minutes entre la première et la seconde, en supposant que les deux heures sont dans la même journée de 24h.
polyglotteIntermédiaire#arithmetique#temps30 minmai 2026 - MoyenGéométrie
Distance de Manhattan entre deux points entiers
Lire les coordonnées de deux points dans le plan et afficher leur distance de Manhattan.
polyglotteIntermédiaire#geometrie#distance20 minmai 2026 - DifficileDyn. prog
Calculer la distance d'édition de Levenshtein
Implémenter l'algorithme de distance de Levenshtein par programmation dynamique pour calculer le nombre minimal d'insertions, suppressions et substitutions permettant de transformer une chaîne en une autre.
polyglotteAvancé#dyn-prog#chaines60 minmai 2026 - MoyenListes
Détecter les doublons dans une liste d'entiers
Lire une liste d'entiers et afficher ceux qui apparaissent plus d'une fois, dans l'ordre de leur première occurrence.
polyglotteIntermédiaire#listes#detection25 minmai 2026 - MoyenArbres
Dessiner un arbre binaire complet de profondeur N en ASCII
Lire un entier N et afficher la représentation ASCII d'un arbre binaire parfait de profondeur N, avec les nœuds numérotés en ordre BFS.
polyglotteIntermédiaire#arbres#ascii40 minmai 2026 - FacileArithmétique
Extraire le dernier chiffre d'un entier positif
Lire un entier positif et afficher son dernier chiffre (le chiffre des unités) en utilisant l'opérateur modulo.
polyglotteDébutant#arithmetique#modulo5 minmai 2026 - FacileArithmétique
Convertir N secondes en HH:MM:SS
Lire un nombre entier de secondes et afficher la durée correspondante au format HH:MM:SS, avec zéros de remplissage.
polyglotteDébutant#arithmetique#formatage15 minmai 2026 - FacileArithmétique
Convertir N minutes en HhMM
Lire un nombre entier de minutes et afficher la durée correspondante au format `XhYY` où X est le nombre d'heures et YY les minutes restantes avec zéro de remplissage.
polyglotteDébutant#arithmetique#formatage10 minmai 2026 - FacileArithmétique
Convertir des degrés Fahrenheit en Celsius
Lire une température en Fahrenheit et afficher la valeur convertie en Celsius, arrondie à deux décimales.
polyglotteDébutant#arithmetique#conversion10 minmai 2026 - MoyenChaînes
Convertir entre chiffres romains et arabes
Lire soit un entier arabe (1 à 3999), soit un nombre romain, et afficher sa représentation dans l'autre système.
polyglotteIntermédiaire#chaines#romains45 minmai 2026 - DifficileArithmétique
Convertir un entier entre deux bases quelconques (2 à 36)
Implémenter la conversion d'un entier positif d'une base source vers une base cible, en utilisant les chiffres 0-9 puis les lettres a-z pour les valeurs 10 à 35.
polyglotteAvancé#arithmetique#bases60 minmai 2026 - FacileChaînes
Lire deux chaînes et les concaténer
Lire deux chaînes de caractères sur des lignes distinctes et afficher leur concaténation directe, sans séparateur.
polyglotteDébutant#chaines#entree5 minmai 2026 - MoyenChaînes
Compter les occurrences d'un mot dans un texte
Lire un mot cible et un texte multi-lignes, puis afficher le nombre de fois que le mot apparaît dans le texte, sans tenir compte de la casse.
polyglotteIntermédiaire#chaines#comptage25 minmai 2026 - FacileChaînes
Compter les occurrences d'un caractère donné
Lire une chaîne puis un caractère sur l'entrée standard et afficher le nombre de fois que ce caractère apparaît dans la chaîne.
polyglotteDébutant#chaines#comptage15 minmai 2026 - MoyenTexte
Compter les lignes non vides sur l'entrée standard
Lire l'entrée standard jusqu'à EOF et afficher le nombre de lignes qui contiennent au moins un caractère non-espace.
polyglotteIntermédiaire#texte#entree20 minmai 2026 - FacileChaînes
Compter les voyelles d'une phrase
Lire une phrase sur l'entrée standard et afficher le nombre de voyelles (a, e, i, o, u) qu'elle contient, sans tenir compte de la casse.
polyglotteDébutant#chaines#comptage15 minmai 2026 - FacileChaînes
Compter les mots d'une phrase
Lire une phrase sur l'entrée standard et afficher le nombre de mots qu'elle contient, en séparant les mots par les espaces.
polyglotteDébutant#chaines#comptage15 minmai 2026 - FacileBoucles
Imprimer les entiers de 1 à N
Lire un entier N sur l'entrée standard et afficher tous les entiers de 1 à N inclus, un par ligne.
polyglotteDébutant#boucles#entree10 minmai 2026 - FacileBoucles
Imprimer une décrémentation de 10 à 1
Afficher les entiers de 10 à 1 dans l'ordre décroissant, un par ligne, sans entrée utilisateur.
polyglotteDébutant#boucles#decrement5 minmai 2026 - MoyenChaînes
Compression simple par répétition (RLE)
Encoder et décoder une chaîne de caractères par Run-Length Encoding : remplacer chaque séquence de caractères identiques consécutifs par le caractère suivi de son nombre de répétitions.
polyglotteIntermédiaire#chaines#compression35 minmai 2026 - DifficileCompression
Compresser et décompresser un texte par codes de longueur variable
Implémenter un algorithme de codage de Huffman : construire l'arbre à partir des fréquences des caractères, encoder le texte en une suite de bits, puis décoder cette suite.
polyglotteAvancé#compression#codes90 minmai 2026 - FacileBoucles
Imprimer les carrés des entiers de 1 à 10
Afficher pour chaque entier de 1 à 10 son carré, sous la forme `N^2 = R`, un résultat par ligne.
polyglotteDébutant#boucles#carres10 minmai 2026
D'abord, faire marcher
On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)
Pas de mauvaise réponse
Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.
Trop dur ? Au suivant
Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.