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

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

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'.





Puisque 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 une pincée de piments marinés' et s2 = 'Une pincée de piments marinés Peter Piper a cueilli'.



Étant donné que la deuxième chaîne ne peut pas être formée en réarrangeant 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 :





#include
using namespace std;
bool checkAnagrams(string s1, string s2)
{
int size1 = s1.length();
int size2 = s2.length();
// If the length of both strings are not the same,
// it means they can't be anagrams of each other.
// Thus, return false.
if (size1 != size2)
{
return false;
}
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
for (int i = 0; i {
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}
int main()
{
string s1 = 'listen';
string s2 = 'silent';
cout << 'String 1: ' << s1 << endl;
cout << 'String 2: ' << s2 << endl;
if(checkAnagrams(s1, s2))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s3 = 'Welcome to MUO';
string s4 = 'MUO to Welcome';
cout << 'String 3: ' << s3 << endl;
cout << 'String 4: ' << s4 << endl;
if(checkAnagrams(s3, s4))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s5 = 'Peter Piper picked a peck of pickled peppers';
string s6 = 'A peck of pickled peppers Peter Piper picked';
cout << 'String 5: ' << s5 << endl;
cout << 'String 6: ' << s6 << endl;
if(checkAnagrams(s5, s6))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s7 = 'She sells seashells by the seashore';
string s8 = 'seashells by the seashore';
cout << 'String 7: ' << s7 << endl;
cout << 'String 8: ' << s8 << endl;
if(checkAnagrams(s7, s8))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s9 = 'creative';
string s10 = 'reactive';
cout << 'String 9: ' << s9 << endl;
cout << 'String 10: ' << s10 << endl;
if(checkAnagrams(s9, s10))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
return 0;
}

Sortir:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Connexes : 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 checkAnagrams(s1, s2):
size1 = len(s1)
size2 = len(s2)
# If the length of both strings are not the same,
# it means they can't be anagrams of each other.
# Thus, return false.
if size1 != size2:
return 0
s1 = sorted(s1)
s2 = sorted(s2)
for i in range(0, size1):
if s1[i] != s2[i]:
return False
return True

s1 = 'listen'
s2 = 'silent'
print('String 1: ', s1)
print('String 2: ', s2)
if(checkAnagrams(s1, s2)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s3 = 'Welcome to MUO'
s4 = 'MUO to Welcome'
print('String 3: ', s3)
print('String 4: ', s4)
if(checkAnagrams(s3, s4)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s5 = 'Peter Piper picked a peck of pickled peppers'
s6 = 'A peck of pickled peppers Peter Piper picked'
print('String 5: ', s5)
print('String 6: ', s6)
if(checkAnagrams(s5, s6)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s7 = 'She sells seashells by the seashore'
s8 = 'seashells by the seashore'
print('String 7: ', s7)
print('String 8: ', s8)
if(checkAnagrams(s7, s8)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s9 = 'creative'
s10 = 'reactive'
print('String 9: ', s9)
print('String 10: ', s10)
if(checkAnagrams(s9, s10)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')

Sortir:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Connexes : 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 :

function checkAnagrams(s1, s2) {
let size1 = s1.length;
let size2 = s2.length;
// If the length of both strings are not the same,
// it means they can't be anagrams of each other.
// Thus, return false.
if (size1 != size2)
{
return false;
}
s1.sort();
s2.sort();
for (let i = 0; i {
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}

var s1 = 'listen';
var s2 = 'silent';
document.write('String 1: ' + s1 + '
');
document.write('String 2: ' + s2 + '
');
if(checkAnagrams(s1.split(''), s2.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s3 = 'Welcome to MUO';
var s4 = 'MUO to Welcome';
document.write('String 3: ' + s3 + '
');
document.write('String 4: ' + s4 + '
');
if(checkAnagrams(s3.split(''), s4.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s5 = 'Peter Piper picked a peck of pickled peppers';
var s6 = 'A peck of pickled peppers Peter Piper picked';
document.write('String 5: ' + s5 + '
');
document.write('String 6: ' + s6 + '
');
if(checkAnagrams(s5.split(''), s6.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s7 = 'She sells seashells by the seashore';
var s8 = 'seashells by the seashore';
document.write('String 7: ' + s7 + '
');
document.write('String 8: ' + s8 + '
');
if(checkAnagrams(s7.split(''), s8.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s9 = 'creative';
var s10 = 'reactive';
document.write('String 9: ' + s9 + '
');
document.write('String 10: ' + s10 + '
');
if(checkAnagrams(s9.split(''), s10.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}

Sortir:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

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 Partager Tweeter 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.

films gratuits en ligne pas de téléchargement pas d'adhésion pas de sondage
Lire la suite Rubriques connexes
  • La programmation
  • JavaScript
  • Python
  • C Programmation
A propos de l'auteur Yuvraj Chandra(60 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