programmation Java (école d'ingénieur) · Chapitre 6 · Exercice de TD
Anagrammes
Chaînes de caractères et entrées · niveau 2
Énoncé
Deux mots sont des anagrammes s'ils s'écrivent avec les mêmes lettres, en même nombre : chien et niche, algorithme et logarithme. Écrire static boolean sontAnagrammes(String a, String b), sans tenir compte des majuscules ni des espaces. Indication : toCharArray() donne le tableau des caractères d'une chaîne, que l'on peut trier.
Corrigé
Deux mots sont anagrammes si et seulement si leurs lettres, une fois triées, forment la même suite.
static boolean sontAnagrammes(String a, String b) {
char[] x = a.replace(" ", "").toLowerCase().toCharArray();
char[] y = b.replace(" ", "").toLowerCase().toCharArray();
Arrays.sort(x);
Arrays.sort(y);
return Arrays.equals(x, y);
}
Chien/niche, Marie/aimer et algorithme/logarithme sont des anagrammes ; java/jave n'en sont pas. Il faut import java.util.Arrays;. On aurait aussi pu compter les lettres dans un tableau de compteurs, ce qui évite les tris.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.