Par Yuvraj Chandra
Partager
E-mail

Comparer si deux chaînes de texte sont des anagrammes est une excellente tâche de résolution de problèmes pour améliorer les compétences en programmation.

Une anagramme est une chaîne formée en réarrangeant les lettres d'une chaîne différente. Vérifier si deux chaînes sont des anagrammes l'une de l'autre peut sembler difficile, mais ce n'est qu'un peu délicat et trompeusement simple. Dans cet article, vous apprendrez à vérifier si deux chaînes sont des anagrammes l'une de l'autre à l'aide de C++, Python et JavaScript.

Énoncé du problème

On vous donne deux chaînes s1 et s2, vous devez vérifier si les deux chaînes sont des anagrammes l'une de l'autre ou non.

Exemple 1: Soit s1 = "créatif" et s2 = "réactif".

Étant donné que la deuxième chaîne peut être formée en réarrangeant les lettres de la première chaîne et vice-versa, les deux chaînes sont donc des anagrammes l'une de l'autre.

Exemple 2: Soit s1 = "Peter Piper a cueilli un pic de piments marinés" et s2 = "Un picot de piments marinés Peter Piper a cueilli".

Étant donné que la deuxième chaîne ne peut pas être formée en réorganisant les lettres de la première chaîne et vice-versa, les deux chaînes ne sont donc pas des anagrammes l'une de l'autre.

Processus pour vérifier si deux chaînes sont des anagrammes l'une de l'autre

Vous pouvez suivre l'approche ci-dessous pour vérifier si les deux chaînes sont des anagrammes l'une de l'autre:

  1. Comparez la longueur des deux chaînes.
  2. Si la longueur des deux chaînes n'est pas la même, cela signifie qu'elles ne peuvent pas être des anagrammes l'une de l'autre. Ainsi, retourne false.
  3. Si la longueur des deux chaînes est la même, continuez.
  4. Triez les deux chaînes.
  5. Comparez les deux chaînes triées.
  6. Si les deux chaînes triées sont identiques, cela signifie qu'elles sont des anagrammes l'une de l'autre. Donc, retourne vrai.
  7. Si les deux chaînes triées sont différentes, cela signifie qu'elles ne sont pas des anagrammes l'une de l'autre. Ainsi, retourne false.

En rapport: Comment vérifier si une chaîne est un palindrome

Programme C++ pour vérifier si deux chaînes sont des anagrammes l'une de l'autre

Vous trouverez ci-dessous le programme C++ pour vérifier si deux chaînes sont des anagrammes l'une de l'autre ou non:

#comprendre 
en utilisant l'espace de noms std ;
bool checkAnagrams (chaîne s1, chaîne s2)
{
int size1 = s1.length();
int taille2 = s2.longueur();
// Si la longueur des deux chaînes n'est pas la même,
// cela signifie qu'ils ne peuvent pas être des anagrammes l'un de l'autre.
// Ainsi, retourne false.
si (taille1 != taille2)
{
renvoie faux ;
}
trier (s1.begin(), s1.end());
trier (s2.begin(), s2.end());
pour (entier i = 0; i < taille1; i++)
{
si (s1[i] != s2[i])
{
renvoie faux ;
}
}
renvoie vrai ;
}
int main()
{
chaîne s1 = "écouter" ;
chaîne s2 = "silencieux" ;
cout << "Chaîne 1: " << s1 << endl ;
cout << "Chaîne 2:" << s2 << endl;
si (vérifier les anagrammes (s1, s2))
{
cout << "Oui, les deux chaînes sont des anagrammes l'une de l'autre" << endl;
}
autre
{
cout << "Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" << endl;
}
chaîne s3 = "Bienvenue à MUO" ;
string s4 = " MUO à Bienvenue " ;
cout << "Chaîne 3:" << s3 << endl;
cout << "Chaîne 4:" << s4 << endl;
si (vérifier les anagrammes (s3, s4))
{
cout << "Oui, les deux chaînes sont des anagrammes l'une de l'autre" << endl;
}
autre
{
cout << "Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" << endl;
}
string s5 = "Peter Piper a cueilli un pic de poivrons marinés" ;
chaîne s6 = "Une pincée de piments marinés que Peter Piper a cueillis" ;
cout << "Chaîne 5:" << s5 << endl;
cout << "Chaîne 6: " << s6 << endl ;
si (vérifier les anagrammes (s5, s6))
{
cout << "Oui, les deux chaînes sont des anagrammes l'une de l'autre" << endl;
}
autre
{
cout << "Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" << endl;
}
string s7 = "Elle vend des coquillages au bord de la mer";
string s8 = "coquillages au bord de la mer" ;
cout << "Chaîne 7: " << s7 << endl ;
cout << "Chaîne 8: " << s8 << endl ;
si (vérifier les anagrammes (s7, s8))
{
cout << "Oui, les deux chaînes sont des anagrammes l'une de l'autre" << endl;
}
autre
{
cout << "Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" << endl;
}
chaîne s9 = "créatif" ;
chaîne s10 = "réactif" ;
cout << "Chaîne 9: " << s9 << endl ;
cout << "Chaîne 10: " << s10 << endl ;
si (vérifier les anagrammes (s9, s10))
{
cout << "Oui, les deux chaînes sont des anagrammes l'une de l'autre" << endl;
}
autre
{
cout << "Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" << endl;
}
renvoie 0 ;
}

Production:

Chaîne 1: écoutez
Corde 2: silencieux
Oui, les deux chaînes sont des anagrammes l'une de l'autre
Chaîne 3: Bienvenue à MUO
Chaîne 4: MUO à Bienvenue
Oui, les deux chaînes sont des anagrammes l'une de l'autre
Chaîne 5: Peter Piper a cueilli un pic de poivrons marinés
Chaîne 6: Une pincée de poivrons marinés que Peter Piper a cueillis
Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre
Chaîne 7: Elle vend des coquillages au bord de la mer
Chaîne 8: coquillages au bord de la mer
Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre
Chaîne 9: création
Chaîne 10: réactif
Oui, les deux chaînes sont des anagrammes l'une de l'autre

En rapport: Comment compter les occurrences d'un caractère donné dans une chaîne

Programme Python pour vérifier si deux chaînes sont des anagrammes l'une de l'autre

Vous trouverez ci-dessous le programme Python pour vérifier si deux chaînes sont des anagrammes l'une de l'autre ou non:

def checkAnagrammes (s1, s2) :
taille1 = longueur (s1)
taille2 = longueur (s2)
# Si la longueur des deux chaînes n'est pas la même,
# cela signifie qu'ils ne peuvent pas être des anagrammes l'un de l'autre.
# Ainsi, retourne false.
si taille1 != taille2 :
retourner 0
s1 = trié (s1)
s2 = trié (s2)
pour i dans la plage (0, taille1) :
si s1[i] != s2[i] :
retourner Faux
retourner vrai
s1 = "écouter"
s2 = "silencieux"
print("Chaîne 1: ", s1)
print("Chaîne 2: ", s2)
if (checkAnagrams (s1, s2)):
print("Oui, les deux chaînes sont des anagrammes l'une de l'autre")
autre:
print("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre")
s3 = "Bienvenue à MUO"
s4 = " MUO pour accueillir "
print("Chaîne 3: ", s3)
print("Chaîne 4: ", s4)
si (vérifier les anagrammes (s3, s4)):
print("Oui, les deux chaînes sont des anagrammes l'une de l'autre")
autre:
print("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre")
s5 = "Peter Piper a cueilli un pic de poivrons marinés"
s6 = "Une pincée de piments marinés que Peter Piper a cueillis"
print("Chaîne 5: ", s5)
print("Chaîne 6: ", s6)
if (vérifier les anagrammes (s5, s6)):
print("Oui, les deux chaînes sont des anagrammes l'une de l'autre")
autre:
print("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre")
s7 = "Elle vend des coquillages au bord de la mer"
s8 = "coquillages au bord de la mer"
print("Chaîne 7: ", s7)
print("Chaîne 8: ", s8)
si (vérifier les anagrammes (s7, s8)):
print("Oui, les deux chaînes sont des anagrammes l'une de l'autre")
autre:
print("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre")
s9 = "créatif"
s10 = "réactif"
print("Chaîne 9: ", s9)
print("Chaîne 10: ", s10)
if (checkAnagrams (s9, s10)):
print("Oui, les deux chaînes sont des anagrammes l'une de l'autre")
autre:
print("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre")

Production:

Chaîne 1: écoutez
Corde 2: silencieux
Oui, les deux chaînes sont des anagrammes l'une de l'autre
Chaîne 3: Bienvenue à MUO
Chaîne 4: MUO à Bienvenue
Oui, les deux chaînes sont des anagrammes l'une de l'autre
Chaîne 5: Peter Piper a cueilli un pic de poivrons marinés
Chaîne 6: Une pincée de poivrons marinés que Peter Piper a cueillis
Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre
Chaîne 7: Elle vend des coquillages au bord de la mer
Chaîne 8: coquillages au bord de la mer
Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre
Chaîne 9: création
Chaîne 10: réactif
Oui, les deux chaînes sont des anagrammes l'une de l'autre

En rapport: Comment trouver des voyelles, des consonnes, des chiffres et des caractères spéciaux dans une chaîne

Vérifiez si deux chaînes sont des anagrammes l'une de l'autre en JavaScript

Vous trouverez ci-dessous le programme JavaScript pour vérifier si deux chaînes sont des anagrammes l'une de l'autre ou non:

fonction checkAnagrammes (s1, s2) {
laissez size1 = s1.length;
laissez size2 = s2.length;
// Si la longueur des deux chaînes n'est pas la même,
// cela signifie qu'ils ne peuvent pas être des anagrammes l'un de l'autre.
// Ainsi, retourne false.
si (taille1 != taille2)
{
renvoie faux ;
}
s1.sort();
s2.sort();
pour (soit i = 0; i < taille1; i++)
{
si (s1[i] != s2[i])
{
renvoie faux ;
}
}
renvoie vrai ;
}
var s1 = "écouter" ;
var s2 = "silencieux" ;
document.write("Chaîne 1: " + s1 + "
");
document.write("Chaîne 2: " + s2 + "
");
if (checkAnagrams (s1.split(""), s2.split(""))) {
document.write("Oui, les deux chaînes sont des anagrammes l'une de l'autre" + "
");
} autre {
document.write("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" + "
");
}
var s3 = "Bienvenue à MUO" ;
var s4 = " MUO à accueillir " ;
document.write("Chaîne 3: " + s3 + "
");
document.write("Chaîne 4: " + s4 + "
");
if (checkAnagrams (s3.split(""), s4.split(""))) {
document.write("Oui, les deux chaînes sont des anagrammes l'une de l'autre" + "
");
} autre {
document.write("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" + "
");
}
var s5 = "Peter Piper a cueilli un pic de poivrons marinés" ;
var s6 = "Une pincée de piments marinés que Peter Piper a cueillis" ;
document.write("Chaîne 5: " + s5 + "
");
document.write("Chaîne 6: " + s6 + "
");
if (checkAnagrams (s5.split(""), s6.split(""))) {
document.write("Oui, les deux chaînes sont des anagrammes l'une de l'autre" + "
");
} autre {
document.write("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" + "
");
}
var s7 = "Elle vend des coquillages au bord de la mer";
var s8 = "coquillages au bord de la mer" ;
document.write("Chaîne 7: " + s7 + "
");
document.write("Chaîne 8: " + s8 + "
");
if (checkAnagrams (s7.split(""), s8.split(""))) {
document.write("Oui, les deux chaînes sont des anagrammes l'une de l'autre" + "
");
} autre {
document.write("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" + "
");
}
var s9 = "créatif" ;
var s10 = "réactif" ;
document.write("Chaîne 9: " + s9 + "
");
document.write("Chaîne 10: " + s10 + "
");
if (checkAnagrams (s9.split(""), s10.split(""))) {
document.write("Oui, les deux chaînes sont des anagrammes l'une de l'autre" + "
");
} autre {
document.write("Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre" + "
");
}

Production:

Chaîne 1: écoutez
Corde 2: silencieux
Oui, les deux chaînes sont des anagrammes l'une de l'autre
Chaîne 3: Bienvenue à MUO
Chaîne 4: MUO à Bienvenue
Oui, les deux chaînes sont des anagrammes l'une de l'autre
Chaîne 5: Peter Piper a cueilli un pic de poivrons marinés
Chaîne 6: Une pincée de poivrons marinés que Peter Piper a cueillis
Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre
Chaîne 7: Elle vend des coquillages au bord de la mer
Chaîne 8: coquillages au bord de la mer
Non, les deux chaînes ne sont pas des anagrammes l'une de l'autre
Chaîne 9: création
Chaîne 10: réactif
Oui, les deux chaînes sont des anagrammes l'une de l'autre

En rapport: Comment trouver la valeur ASCII d'un caractère ?

Utilisez les bonnes ressources pour apprendre à coder

Si vous cherchez à renforcer vos compétences en codage, il est important d'apprendre de nouveaux concepts et de passer du temps à les utiliser. Une façon de le faire est d'utiliser des applications de programmation, qui vous aideront à apprendre différents concepts de programmation tout en vous amusant.

Partager
E-mail
8 applications pour vous aider à apprendre à coder pour la Journée internationale des programmeurs

Vous voulez parfaire vos compétences en codage? Ces applications et sites Web vous aideront à apprendre la programmation à votre rythme.

Lire la suite

Rubriques connexes
  • Programmation
  • JavaScript
  • Python
  • C Programmation
A propos de l'auteur
Yuvraj Chandra (43 articles publiés)

Yuvraj est un étudiant de premier cycle en informatique à l'Université de Delhi, en Inde. Il est passionné par le développement Web Full Stack. Quand il n'écrit pas, il explore la profondeur de différentes technologies.

Plus de Yuvraj Chandra

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner