Adloun

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

Exercice suivant et tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →