Af Yuvraj Chandra
Del
E-mail

Sammenligning, hvis to tekststrenge er anagrammer, er en stor opgave til problemløsning til forbedring af programmeringsfærdigheder.

Et anagram er en streng dannet ved at omarrangere bogstaverne i en anden streng. At kontrollere, om to strenge er anagrammer over hinanden, lyder måske svært, men det er kun lidt vanskeligt og vildledende ligetil. I denne artikel lærer du, hvordan du kontrollerer, om to strenge er anagrammer over hinanden ved hjælp af C ++, Python og JavaScript.

Problemformulering

Du får to strenge s1 og s2, du skal kontrollere, om de to strenge er anagrammer af hinanden eller ej.

Eksempel 1: Lad s1 = "kreativ" og s2 = "reaktiv".

Da den anden streng kan dannes ved at omarrangere bogstaverne i den første streng og omvendt, er de to strenge således anagrammer over hinanden.

Eksempel 2: Lad s1 = "Peter Piper plukket en peck syltede peberfrugter" og s2 = "En peck af syltede peberfrugter Peter Piper plukket".

instagram viewer

Da den anden streng ikke kan dannes ved at omarrangere bogstaverne i den første streng og omvendt, er de to strenge således ikke anagrammer over hinanden.

Process til kontrol af, om to strenge er anagrammer over hinanden

Du kan følge fremgangsmåden nedenfor for at kontrollere, om de to strenge er anagrammer over hinanden:

  1. Sammenlign længden af ​​begge strenge.
  2. Hvis længden af ​​begge strenge ikke er den samme, betyder det, at de ikke kan være anagrammer over hinanden. Så returner falsk.
  3. Hvis længden af ​​begge strenge er den samme, skal du gå videre.
  4. Sorter begge strenge.
  5. Sammenlign begge sorterede strenge.
  6. Hvis begge de sorterede strenge er ens, betyder det, at de er anagrammer over hinanden. Så vend tilbage sandt.
  7. Hvis begge de sorterede strenge er forskellige, betyder det, at de ikke er anagrammer over hinanden. Så returner falsk.

Relaterede: Sådan kontrolleres, om en streng er et palindrom

C ++ - program til at kontrollere, om to strenge er anagrammer over hinanden

Nedenfor er C ++ - programmet for at kontrollere, om to strenge er anagrammer af hinanden eller ej:

#omfatte 
ved hjælp af namespace std;
bool checkAnagrams (streng s1, streng s2)
{
int størrelse1 = s1.længde ();
int størrelse2 = s2.length ();
// Hvis længden af ​​begge strenge ikke er den samme,
// det betyder, at de ikke kan være anagrammer over hinanden.
// Returner således falsk.
hvis (størrelse1! = størrelse2)
{
returner falsk;
}
sorter (s1.begin (), s1.end ());
sorter (s2.begin (), s2.end ());
for (int i = 0; i {
hvis (s1 [i]! = s2 [i])
{
returner falsk;
}
}
returner sandt;
}
int main ()
{
streng s1 = "lyt";
streng s2 = "lydløs";
cout << "Streng 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
hvis (checkAnagrams (s1, s2))
{
cout << "Ja, de to strenge er hinandens anagrammer" << endl;
}
andet
{
cout << "Nej, de to strenge er ikke anagrammer over hinanden" << endl;
}
string s3 = "Velkommen til MUO";
string s4 = "MUO til velkomst";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
hvis (checkAnagrams (s3, s4))
{
cout << "Ja, de to strenge er hinandens anagrammer" << endl;
}
andet
{
cout << "Nej, de to strenge er ikke anagrammer over hinanden" << endl;
}
string s5 = "Peter Piper plukkede en plet syltede peberfrugter";
string s6 = "En plet af syltede peberfrugter, Peter Piper plukket";
cout << "String 5:" << s5 << endl;
cout << "String 6:" << s6 << endl;
hvis (checkAnagrams (s5, s6))
{
cout << "Ja, de to strenge er hinandens anagrammer" << endl;
}
andet
{
cout << "Nej, de to strenge er ikke anagrammer over hinanden" << endl;
}
string s7 = "Hun sælger muslingeskaller ved kysten";
string s8 = "muslingeskaller ved kysten";
cout << "String 7:" << s7 << endl;
cout << "String 8:" << s8 << endl;
hvis (checkAnagrams (s7, s8))
{
cout << "Ja, de to strenge er hinandens anagrammer" << endl;
}
andet
{
cout << "Nej, de to strenge er ikke anagrammer over hinanden" << endl;
}
streng s9 = "kreativ";
streng s10 = "reaktiv";
cout << "String 9:" << s9 << endl;
cout << "Streng 10:" << s10 << endl;
hvis (checkAnagrams (s9, s10))
{
cout << "Ja, de to strenge er hinandens anagrammer" << endl;
}
andet
{
cout << "Nej, de to strenge er ikke anagrammer over hinanden" << endl;
}
returnere 0;
}

Produktion:

Streng 1: lyt
Streng 2: lydløs
Ja, de to strenge er anagrammer over hinanden
Streng 3: Velkommen til MUO
Streng 4: MUO til velkomst
Ja, de to strenge er anagrammer over hinanden
Streng 5: Peter Piper plukkede en plet syltede peberfrugter
Streng 6: En peck af syltede peberfrugter, Peter Piper plukket
Nej, de to strenge er ikke anagrammer over hinanden
Streng 7: Hun sælger muslingeskaller ved kysten
Streng 8: muslingeskaller ved kysten
Nej, de to strenge er ikke anagrammer over hinanden
Streng 9: kreativ
Streng 10: reaktiv
Ja, de to strenge er anagrammer over hinanden

Relaterede: Sådan tælles forekomsterne af en given karakter i en streng

Python-program til at kontrollere, om to strenge er anagrammer over hinanden

Nedenfor er Python-programmet for at kontrollere, om to strenge er anagrammer af hinanden eller ej:

def checkAnagrams (s1, s2):
størrelse1 = len (s1)
størrelse2 = len (s2)
# Hvis længden af ​​begge strenge ikke er den samme,
# det betyder, at de ikke kan være anagrammer over hinanden.
# Returner således falsk.
hvis størrelse1! = størrelse2:
returnere 0
s1 = sorteret (s1)
s2 = sorteret (s2)
for jeg inden for rækkevidde (0, størrelse1):
hvis s1 [i]! = s2 [i]:
returner Falsk
returner sandt
s1 = "lyt"
s2 = "lydløs"
print ("String 1:", s1)
print ("String 2:", s2)
hvis (checkAnagrams (s1, s2)):
print ("Ja, de to strenge er anagrammer over hinanden")
andet:
print ("Nej, de to strenge er ikke anagrammer over hinanden")
s3 = "Velkommen til MUO"
s4 = "MUO til velkomst"
print ("String 3:", s3)
print ("String 4:", s4)
hvis (checkAnagrams (s3, s4)):
print ("Ja, de to strenge er anagrammer over hinanden")
andet:
print ("Nej, de to strenge er ikke anagrammer over hinanden")
s5 = "Peter Piper plukkede en plet syltede peberfrugter"
s6 = "Et peck syltede peberfrugter, Peter Piper plukket"
print ("String 5:", s5)
print ("String 6:", s6)
hvis (checkAnagrams (s5, s6)):
print ("Ja, de to strenge er anagrammer over hinanden")
andet:
print ("Nej, de to strenge er ikke anagrammer over hinanden")
s7 = "Hun sælger muslingeskaller ved kysten"
s8 = "muslingeskaller ved kysten"
print ("String 7:", s7)
print ("String 8:", s8)
hvis (checkAnagrams (s7, s8)):
print ("Ja, de to strenge er anagrammer over hinanden")
andet:
print ("Nej, de to strenge er ikke anagrammer over hinanden")
s9 = "kreativ"
s10 = "reaktiv"
print ("String 9:", s9)
print ("String 10:", s10)
hvis (checkAnagrams (s9, s10)):
print ("Ja, de to strenge er anagrammer over hinanden")
andet:
print ("Nej, de to strenge er ikke anagrammer over hinanden")

Produktion:

Streng 1: lyt
Streng 2: lydløs
Ja, de to strenge er anagrammer over hinanden
Streng 3: Velkommen til MUO
Streng 4: MUO til velkomst
Ja, de to strenge er anagrammer over hinanden
Streng 5: Peter Piper plukkede en plet syltede peberfrugter
Streng 6: En peck af syltede peberfrugter, Peter Piper plukket
Nej, de to strenge er ikke anagrammer over hinanden
Streng 7: Hun sælger muslingeskaller ved kysten
Streng 8: muslingeskaller ved kysten
Nej, de to strenge er ikke anagrammer over hinanden
Streng 9: kreativ
Streng 10: reaktiv
Ja, de to strenge er anagrammer over hinanden

Relaterede: Sådan finder du vokaler, konsonanter, cifre og specialtegn i en streng

Kontroller, om to strenge er anagrammer over hinanden i JavaScript

Nedenfor er JavaScript-programmet til at kontrollere, om to strenge er anagrammer af hinanden eller ej:

funktionskontrolAnagrammer (s1, s2) {
lad størrelse1 = s1.længde;
lad størrelse2 = s2.længde;
// Hvis længden af ​​begge strenge ikke er den samme,
// det betyder, at de ikke kan være anagrammer over hinanden.
// Returner således falsk.
hvis (størrelse1! = størrelse2)
{
returner falsk;
}
s1.sort ();
s2.sort ();
for (lad i = 0; i {
hvis (s1 [i]! = s2 [i])
{
returner falsk;
}
}
returner sandt;
}
var s1 = "lyt";
var s2 = "lydløs";
document.write ("Streng 1:" + s1 + "
");
document.write ("String 2:" + s2 + "
");
hvis (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Ja, de to strenge er anagrammer over hinanden" + "
");
} andet {
document.write ("Nej, de to strenge er ikke anagrammer over hinanden" + "
");
}
var s3 = "Velkommen til MUO";
var s4 = "MUO til velkomst";
document.write ("String 3:" + s3 + "
");
document.write ("String 4:" + s4 + "
");
hvis (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Ja, de to strenge er anagrammer over hinanden" + "
");
} andet {
document.write ("Nej, de to strenge er ikke anagrammer over hinanden" + "
");
}
var s5 = "Peter Piper plukket en plet syltede peberfrugter";
var s6 = "En plet af syltede peberfrugter, Peter Piper plukket";
document.write ("Streng 5:" + s5 + "
");
document.write ("String 6:" + s6 + "
");
hvis (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Ja, de to strenge er anagrammer over hinanden" + "
");
} andet {
document.write ("Nej, de to strenge er ikke anagrammer over hinanden" + "
");
}
var s7 = "Hun sælger muslingeskaller ved kysten";
var s8 = "muslingeskaller ved kysten";
document.write ("String 7:" + s7 + "
");
document.write ("String 8:" + s8 + "
");
hvis (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Ja, de to strenge er anagrammer over hinanden" + "
");
} andet {
document.write ("Nej, de to strenge er ikke anagrammer over hinanden" + "
");
}
var s9 = "kreativ";
var s10 = "reaktiv";
document.write ("String 9:" + s9 + "
");
document.write ("String 10:" + s10 + "
");
hvis (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Ja, de to strenge er anagrammer over hinanden" + "
");
} andet {
document.write ("Nej, de to strenge er ikke anagrammer over hinanden" + "
");
}

Produktion:

Streng 1: lyt
Streng 2: lydløs
Ja, de to strenge er anagrammer over hinanden
Streng 3: Velkommen til MUO
Streng 4: MUO til velkomst
Ja, de to strenge er anagrammer over hinanden
Streng 5: Peter Piper plukkede en plet syltede peberfrugter
Streng 6: En peck af syltede peberfrugter, Peter Piper plukket
Nej, de to strenge er ikke anagrammer over hinanden
Streng 7: Hun sælger muslingeskaller ved kysten
Streng 8: muslingeskaller ved kysten
Nej, de to strenge er ikke anagrammer over hinanden
Streng 9: kreativ
Streng 10: reaktiv
Ja, de to strenge er anagrammer over hinanden

Relaterede: Hvordan finder du ASCII-værdien af ​​et tegn?

Brug de rigtige ressourcer til at lære at kode

Hvis du ønsker at styrke dine kodningsfærdigheder, er det vigtigt at lære nye koncepter og bruge tid på at bruge dem. En måde at gøre dette på er med programmering af apps, som hjælper dig med at lære forskellige programmeringskoncepter, mens du har det sjovt på samme tid.

Del
E-mail
8 apps, der hjælper dig med at lære at kode for den internationale programmørdag

Vil du pusse dine kodningsfærdigheder op? Disse apps og websteder hjælper dig med at lære programmering i dit eget tempo.

Læs Næste

Relaterede emner
  • Programmering
  • JavaScript
  • Python
  • C Programmering
Om forfatteren
Yuvraj Chandra (43 artikler offentliggjort)

Yuvraj er en bachelorstudent i datalogi ved University of Delhi, Indien. Han brænder for Full Stack Webudvikling. Når han ikke skriver, udforsker han dybden af ​​forskellige teknologier.

Mere fra Yuvraj Chandra

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere