De Yuvraj Chandra
Acțiune
E-mail

Compararea dacă două șiruri de text sunt anagrame este o mare sarcină de rezolvare a problemelor pentru îmbunătățirea abilităților de programare.

O anagramă este un șir format prin rearanjarea literelor unui șir diferit. Verificarea dacă două șiruri de caractere sunt anagrame unele pe altele poate suna dificil, dar este doar puțin dificil și înșelător de simplu. În acest articol, veți învăța cum să verificați dacă două șiruri sunt anagrame unele cu altele folosind C ++, Python și JavaScript.

Declarație problemă

Vi se oferă două șiruri s1 și s2, trebuie să verificați dacă cele două șiruri sunt sau nu anagrame.

Exemplul 1: Fie s1 = "creativ" și s2 = "reactiv".

Deoarece cel de-al doilea șir poate fi format prin rearanjarea literelor primului șir și invers, astfel cele două șiruri sunt anagrame una față de alta.

Exemplul 2: Să s1 = "Peter Piper a cules un peck de ardei murați" și s2 = "Un peck de ardei murați a ales Peter Piper".

instagram viewer

Deoarece cel de-al doilea șir nu poate fi format prin rearanjarea literelor primului șir și viceversa, astfel cele două șiruri nu sunt anagramă una față de cealaltă.

Proces pentru verificarea dacă două șiruri sunt anagrame unele de altele

Puteți urmări abordarea de mai jos pentru a verifica dacă cele două șiruri de caractere sunt anagrame una față de alta:

  1. Comparați lungimea ambelor șiruri.
  2. Dacă lungimea ambelor șiruri nu este aceeași, înseamnă că nu pot fi anagramă una cu cealaltă. Astfel, întoarceți fals.
  3. Dacă lungimea ambelor șiruri este aceeași, continuați mai departe.
  4. Sortați ambele șiruri.
  5. Comparați ambele șiruri sortate.
  6. Dacă ambele șiruri sortate sunt aceleași, înseamnă că sunt anagrame unele cu altele. Astfel, reveniți adevărat.
  7. Dacă ambele șiruri sortate sunt diferite, înseamnă că nu sunt anagrame unele cu altele. Astfel, întoarceți fals.

Legate de: Cum să verificați dacă un șir este un palindrom

Program C ++ pentru a verifica dacă două șiruri sunt anagrame unele de altele

Mai jos este programul C ++ pentru a verifica dacă două șiruri sunt sau nu anagrame:

#include 
folosind spațiul de nume std;
verificare bool Anagramele (șirul s1, șirul s2)
{
int size1 = s1.length ();
int size2 = s2.length ();
// Dacă lungimea ambelor șiruri nu este aceeași,
// înseamnă că nu pot fi anagramă una cu cealaltă.
// Astfel, returnează false.
if (mărime1! = mărime2)
{
returnează fals;
}
sortare (s1.begin (), s1.end ());
sort (s2.begin (), s2.end ());
pentru (int i = 0; i {
if (s1 [i]! = s2 [i])
{
returnează fals;
}
}
întoarce-te adevărat;
}
int main ()
{
șir s1 = "ascultă";
șir s2 = "tăcut";
cout << "Șirul 1:" << s1 << endl;
cout << "Șirul 2:" << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Da, cele două șiruri de caractere sunt anagrame una față de cealaltă" << endl;
}
altfel
{
cout << "Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă" << endl;
}
șir s3 = "Bine ați venit la MUO";
șir s4 = "MUO to Welcome";
cout << "Șirul 3:" << s3 << endl;
cout << "Șirul 4:" << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Da, cele două șiruri de caractere sunt anagrame una față de cealaltă" << endl;
}
altfel
{
cout << "Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă" << endl;
}
șirul s5 = "Peter Piper a cules un peck de ardei murați";
șirul s6 = "Un peck de ardei murați cules de Peter Piper";
cout << "Șirul 5:" << s5 << endl;
cout << "Șirul 6:" << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Da, cele două șiruri de caractere sunt anagrame una față de cealaltă" << endl;
}
altfel
{
cout << "Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă" << endl;
}
string s7 = "Ea vinde scoici pe malul mării";
șir s8 = "scoici de pe malul mării";
cout << "Șirul 7:" << s7 << endl;
cout << "Șirul 8:" << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Da, cele două șiruri de caractere sunt anagrame una față de cealaltă" << endl;
}
altfel
{
cout << "Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă" << endl;
}
șir s9 = "creativ";
șir s10 = "reactiv";
cout << "Șirul 9:" << s9 << endl;
cout << "Șirul 10:" << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Da, cele două șiruri de caractere sunt anagrame una față de cealaltă" << endl;
}
altfel
{
cout << "Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă" << endl;
}
retur 0;
}

Ieșire:

Șirul 1: ascultă
Șirul 2: tăcut
Da, cele două șiruri sunt anagrame una față de alta
Șirul 3: Bine ați venit la MUO
Șirul 4: MUO to Welcome
Da, cele două șiruri sunt anagrame una față de alta
Șirul 5: Peter Piper a ales un peck de ardei murați
Șirul 6: Un peck de ardei murați pe care i-a ales Peter Piper
Nu, cele două șiruri de caractere nu sunt anagrame unele de altele
Șirul 7: Vinde scoici pe malul mării
Șirul 8: scoici pe malul mării
Nu, cele două șiruri de caractere nu sunt anagrame unele de altele
Șirul 9: creativ
Șirul 10: reactiv
Da, cele două șiruri sunt anagrame una față de alta

Legate de: Cum se numără aparițiile unui caracter dat într-un șir

Programul Python pentru a verifica dacă două șiruri sunt anagrame unele de altele

Mai jos este programul Python pentru a verifica dacă două șiruri sunt sau nu anagrame:

verificare def Anagramele (s1, s2):
size1 = len (s1)
size2 = len (s2)
# Dacă lungimea ambelor șiruri nu este aceeași,
# înseamnă că nu pot fi anagramă una cu cealaltă.
# Astfel, returnează fals.
dacă mărimea1! = mărimea2:
returnează 0
s1 = sortat (s1)
s2 = sortat (s2)
pentru i în intervalul (0, mărime1):
dacă s1 [i]! = s2 [i]:
returnează Fals
întoarce Adevărat
s1 = "asculta"
s2 = "tăcut"
print ("Șirul 1:", s1)
print ("Șirul 2:", s2)
if (checkAnagrams (s1, s2)):
print („Da, cele două șiruri sunt anagrame una față de cealaltă”)
altceva:
print („Nu, cele două șiruri de caractere nu sunt anagramă una de cealaltă”)
s3 = "Bun venit la MUO"
s4 = "MUO to Welcome"
print ("Șirul 3:", s3)
print ("Șirul 4:", s4)
if (checkAnagrams (s3, s4)):
print („Da, cele două șiruri sunt anagrame una față de cealaltă”)
altceva:
print („Nu, cele două șiruri de caractere nu sunt anagramă una de cealaltă”)
s5 = "Peter Piper a ales un peck de ardei murati"
s6 = "Un peck de ardei murati culese de Peter Piper"
print ("Șirul 5:", s5)
print ("Șirul 6:", s6)
if (checkAnagrams (s5, s6)):
print („Da, cele două șiruri sunt anagrame una față de cealaltă”)
altceva:
print („Nu, cele două șiruri de caractere nu sunt anagramă una de cealaltă”)
s7 = "Vinde scoici pe malul mării"
s8 = "scoici pe malul mării"
print ("Șirul 7:", s7)
print ("Șirul 8:", s8)
if (checkAnagrams (s7, s8)):
print („Da, cele două șiruri sunt anagrame una față de cealaltă”)
altceva:
print („Nu, cele două șiruri de caractere nu sunt anagramă una de cealaltă”)
s9 = "creativ"
s10 = "reactiv"
print ("Șirul 9:", s9)
print ("Șirul 10:", s10)
if (checkAnagrams (s9, s10)):
print („Da, cele două șiruri sunt anagrame una față de cealaltă”)
altceva:
print („Nu, cele două șiruri de caractere nu sunt anagramă una de cealaltă”)

Ieșire:

Șirul 1: ascultă
Șirul 2: tăcut
Da, cele două șiruri sunt anagrame una față de alta
Șirul 3: Bine ați venit la MUO
Șirul 4: MUO to Welcome
Da, cele două șiruri sunt anagrame una față de alta
Șirul 5: Peter Piper a ales un peck de ardei murați
Șirul 6: Un peck de ardei murați pe care i-a ales Peter Piper
Nu, cele două șiruri de caractere nu sunt anagrame unele de altele
Șirul 7: Vinde scoici pe malul mării
Șirul 8: scoici pe malul mării
Nu, cele două șiruri de caractere nu sunt anagrame unele de altele
Șirul 9: creativ
Șirul 10: reactiv
Da, cele două șiruri sunt anagrame una față de alta

Legate de: Cum să găsiți vocale, consoane, cifre și caractere speciale într-un șir

Verificați dacă două șiruri sunt anagrame unele de altele în JavaScript

Mai jos este programul JavaScript pentru a verifica dacă două șiruri de caractere sunt sau nu anagrame:

verificarea funcției Anagramele (s1, s2) {
lasă mărimea1 = s1.lungime;
let size2 = s2.length;
// Dacă lungimea ambelor șiruri nu este aceeași,
// înseamnă că nu pot fi anagramă una cu cealaltă.
// Astfel, returnează false.
if (mărime1! = mărime2)
{
returnează fals;
}
s1.sort ();
s2.sort ();
pentru (să i = 0; i {
if (s1 [i]! = s2 [i])
{
returnează fals;
}
}
întoarce-te adevărat;
}
var s1 = "asculta";
var s2 = "tăcut";
document.write ("Șirul 1:" + s1 + "
");
document.write ("Șirul 2:" + s2 + "
");
if (checkAnagrams (s1.split (""), s2.split (""))) {
document.write („Da, cele două șiruri sunt anagramele celeilalte” + ”
");
} altceva {
document.write („Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă” + ”
");
}
var s3 = "Bun venit la MUO";
var s4 = "MUO to Welcome";
document.write ("Șirul 3:" + s3 + "
");
document.write ("Șirul 4:" + s4 + "
");
if (checkAnagrams (s3.split (""), s4.split (""))) {
document.write („Da, cele două șiruri sunt anagramele celeilalte” + ”
");
} altceva {
document.write („Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă” + ”
");
}
var s5 = "Peter Piper a cules un peck de ardei murați";
var s6 = "Un peck de ardei murați cules de Peter Piper";
document.write ("Șirul 5:" + s5 + "
");
document.write ("Șirul 6:" + s6 + "
");
if (checkAnagrams (s5.split (""), s6.split (""))) {
document.write („Da, cele două șiruri sunt anagramele celeilalte” + ”
");
} altceva {
document.write („Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă” + ”
");
}
var s7 = "Ea vinde scoici la malul mării";
var s8 = "scoici pe malul mării";
document.write ("Șirul 7:" + s7 + "
");
document.write ("Șirul 8:" + s8 + "
");
if (checkAnagrams (s7.split (""), s8.split (""))) {
document.write („Da, cele două șiruri sunt anagramele celeilalte” + ”
");
} altceva {
document.write („Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă” + ”
");
}
var s9 = "creativ";
var s10 = "reactiv";
document.write ("Șirul 9:" + s9 + "
");
document.write ("Șirul 10:" + s10 + "
");
if (checkAnagrams (s9.split (""), s10.split (""))) {
document.write („Da, cele două șiruri sunt anagramele celeilalte” + ”
");
} altceva {
document.write („Nu, cele două șiruri de caractere nu sunt anagrama una de cealaltă” + ”
");
}

Ieșire:

Șirul 1: ascultă
Șirul 2: tăcut
Da, cele două șiruri sunt anagrame una față de alta
Șirul 3: Bine ați venit la MUO
Șirul 4: MUO to Welcome
Da, cele două șiruri sunt anagrame una față de alta
Șirul 5: Peter Piper a ales un peck de ardei murați
Șirul 6: Un peck de ardei murați pe care i-a ales Peter Piper
Nu, cele două șiruri de caractere nu sunt anagrame unele de altele
Șirul 7: Vinde scoici pe malul mării
Șirul 8: scoici pe malul mării
Nu, cele două șiruri de caractere nu sunt anagrame unele de altele
Șirul 9: creativ
Șirul 10: reactiv
Da, cele două șiruri sunt anagrame una față de alta

Legate de: Cum găsiți valoarea ASCII a unui personaj?

Folosiți resursele potrivite pentru a învăța să codificați

Dacă doriți să vă consolidați abilitățile de codare, este important să învățați concepte noi și să petreceți timp folosindu-le. O modalitate de a face acest lucru este cu aplicațiile de programare, care vă vor ajuta să învățați diferite concepte de programare, distrându-vă în același timp.

Acțiune
E-mail
8 aplicații pentru a vă ajuta să învățați să codați pentru Ziua Internațională a Programatorilor

Doriți să vă perfecționați abilitățile de codare? Aceste aplicații și site-uri web vă vor ajuta să învățați programarea în propriul ritm.

Citiți în continuare

Subiecte asemănătoare
  • Programare
  • JavaScript
  • Piton
  • Programare C
Despre autor
Yuvraj Chandra (43 articole publicate)

Yuvraj este student în științe informatice la Universitatea din Delhi, India. Este pasionat de dezvoltarea web Full Stack. Când nu scrie, explorează profunzimea diferitelor tehnologii.

Mai multe de la Yuvraj Chandra

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona