Av Yuvraj Chandra
Dele
E-post

Å sammenligne om to tekststrenger er anagrammer, er en stor problemløsningsoppgave for å forbedre programmeringsferdighetene.

Et anagram er en streng dannet ved å omorganisere bokstavene til en annen streng. Det kan høres vanskelig å sjekke om to strenger er anagrammer av hverandre, men det er bare litt vanskelig og villedende greit. I denne artikkelen lærer du hvordan du sjekker om to strenger er anagrammer av hverandre ved hjelp av C ++, Python og JavaScript.

Problemstilling

Du får to strenger s1 og s2, du må sjekke om de to strengene er anagrammer av hverandre eller ikke.

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

Siden den andre strengen kan dannes ved å omorganisere bokstavene til den første strengen og omvendt, er de to strengene således anagrammer over hverandre.

Eksempel 2: La s1 = "Peter Piper plukket en peck med syltet paprika" og s2 = "En peck med syltet paprika Peter Piper plukket".

instagram viewer

Siden den andre strengen ikke kan dannes ved å omorganisere bokstavene til den første strengen og omvendt, er de to strengene således ikke anagrammer over hverandre.

Prosess for å kontrollere om to strenger er diagrammer over hverandre

Du kan følge fremgangsmåten nedenfor for å sjekke om de to strengene er anagrammer av hverandre:

  1. Sammenlign lengden på begge strengene.
  2. Hvis lengden på begge strengene ikke er den samme, betyr det at de ikke kan være anagrammer over hverandre. Dermed, returner falsk.
  3. Hvis lengden på begge strengene er den samme, fortsett videre.
  4. Sorter begge strengene.
  5. Sammenlign begge sorterte strengene.
  6. Hvis begge de sorterte strengene er like, betyr det at de er anagrammer av hverandre. Dermed, returner sant.
  7. Hvis begge de sorterte strengene er forskjellige, betyr det at de ikke er anagrammer av hverandre. Dermed, returner falsk.

I slekt: Hvordan sjekke om en streng er et palindrom

C ++ - program for å sjekke om to strenger er anagrammer av hverandre

Nedenfor er C ++ - programmet for å sjekke om to strenger er anagrammer av hverandre eller ikke:

#inkludere 
bruker navneområde std;
bool checkAnagrams (streng s1, streng s2)
{
int størrelse1 = s1.lengde ();
int størrelse2 = s2.length ();
// Hvis lengden på begge strengene ikke er den samme,
// det betyr at de ikke kan være anagrammer over hverandre.
// Dermed returner falsk.
hvis (størrelse1! = størrelse2)
{
returner falsk;
}
sorter (s1.begin (), s1.end ());
sorter (s2.begin (), s2.end ());
for (int i = 0; jeg {
hvis (s1 [i]! = s2 [i])
{
returner falsk;
}
}
returner sant;
}
int main ()
{
streng s1 = "hør";
streng s2 = "lydløs";
cout << "String 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Ja, de to strengene er anagrammer over hverandre" << endl;
}
ellers
{
cout << "Nei, de to strengene er ikke anagrammer over hverandre" << endl;
}
string s3 = "Velkommen til MUO";
string s4 = "MUO til velkomst";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Ja, de to strengene er anagrammer over hverandre" << endl;
}
ellers
{
cout << "Nei, de to strengene er ikke anagrammer over hverandre" << endl;
}
string s5 = "Peter Piper plukket en peck med syltet paprika";
string s6 = "En peck med syltet paprika Peter Piper plukket";
cout << "String 5:" << s5 << endl;
cout << "String 6:" << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Ja, de to strengene er anagrammer over hverandre" << endl;
}
ellers
{
cout << "Nei, de to strengene er ikke anagrammer over hverandre" << endl;
}
string s7 = "Hun selger skjell ved kysten";
streng s8 = "skjell ved kysten";
cout << "String 7:" << s7 << endl;
cout << "String 8:" << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Ja, de to strengene er anagrammer over hverandre" << endl;
}
ellers
{
cout << "Nei, de to strengene er ikke anagrammer over hverandre" << endl;
}
streng s9 = "kreativ";
streng s10 = "reaktiv";
cout << "String 9:" << s9 << endl;
cout << "String 10:" << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Ja, de to strengene er anagrammer over hverandre" << endl;
}
ellers
{
cout << "Nei, de to strengene er ikke anagrammer over hverandre" << endl;
}
retur 0;
}

Produksjon:

Streng 1: hør
String 2: stille
Ja, de to strengene er anagrammer over hverandre
String 3: Velkommen til MUO
String 4: MUO to Welcome
Ja, de to strengene er anagrammer over hverandre
Streng 5: Peter Piper plukket en peck med syltet paprika
Streng 6: En peck med syltet paprika Peter Piper plukket
Nei, de to strengene er ikke anagrammer over hverandre
String 7: Hun selger skjell ved kysten
String 8: skjell ved kysten
Nei, de to strengene er ikke anagrammer over hverandre
Streng 9: kreativ
Streng 10: reaktiv
Ja, de to strengene er anagrammer over hverandre

I slekt: Hvordan telle forekomster av en gitt karakter i en streng

Python-program for å sjekke om to strenger er anagrammer av hverandre

Nedenfor er Python-programmet for å sjekke om to strenger er anagrammer av hverandre eller ikke:

def checkAnagrams (s1, s2):
størrelse1 = len (s1)
størrelse2 = len (s2)
# Hvis lengden på begge strengene ikke er den samme,
# det betyr at de ikke kan være anagrammer over hverandre.
# Dermed returner falsk.
hvis størrelse1! = størrelse2:
retur 0
s1 = sortert (s1)
s2 = sortert (s2)
for jeg innen rekkevidde (0, størrelse1):
hvis s1 [i]! = s2 [i]:
returner Falsk
returner True
s1 = "hør"
s2 = "stille"
utskrift ("String 1:", s1)
utskrift ("String 2:", s2)
if (checkAnagrams (s1, s2)):
print ("Ja, de to strengene er anagrammer over hverandre")
ellers:
print ("Nei, de to strengene er ikke anagrammer over hverandre")
s3 = "Velkommen til MUO"
s4 = "MUO til velkomst"
utskrift ("String 3:", s3)
utskrift ("String 4:", s4)
hvis (sjekkAnagrams (s3, s4)):
print ("Ja, de to strengene er anagrammer over hverandre")
ellers:
print ("Nei, de to strengene er ikke anagrammer over hverandre")
s5 = "Peter Piper plukket en peck med syltet paprika"
s6 = "En pukk med syltet paprika Peter Piper plukket"
trykk ("String 5:", s5)
utskrift ("String 6:", s6)
hvis (sjekkAnagrams (s5, s6)):
print ("Ja, de to strengene er anagrammer over hverandre")
ellers:
print ("Nei, de to strengene er ikke anagrammer over hverandre")
s7 = "Hun selger skjell ved kysten"
s8 = "skjell ved kysten"
utskrift ("String 7:", s7)
utskrift ("String 8:", s8)
if (checkAnagrams (s7, s8)):
print ("Ja, de to strengene er anagrammer over hverandre")
ellers:
print ("Nei, de to strengene er ikke anagrammer over hverandre")
s9 = "kreativ"
s10 = "reaktiv"
utskrift ("String 9:", s9)
utskrift ("String 10:", s10)
hvis (sjekkAnagrams (s9, s10)):
print ("Ja, de to strengene er anagrammer over hverandre")
ellers:
print ("Nei, de to strengene er ikke anagrammer over hverandre")

Produksjon:

Streng 1: hør
String 2: stille
Ja, de to strengene er anagrammer over hverandre
String 3: Velkommen til MUO
String 4: MUO to Welcome
Ja, de to strengene er anagrammer over hverandre
Streng 5: Peter Piper plukket en peck med syltet paprika
Streng 6: En peck med syltet paprika Peter Piper plukket
Nei, de to strengene er ikke anagrammer over hverandre
String 7: Hun selger skjell ved kysten
String 8: skjell ved kysten
Nei, de to strengene er ikke anagrammer over hverandre
Streng 9: kreativ
Streng 10: reaktiv
Ja, de to strengene er anagrammer over hverandre

I slekt: Hvordan finne vokaler, konsonanter, sifre og spesialtegn i en streng

Sjekk om to strenger er anagrammer av hverandre i JavaScript

Nedenfor er JavaScript-programmet for å sjekke om to strenger er anagrammer av hverandre eller ikke:

function checkAnagrams (s1, s2) {
la størrelse1 = s1.lengde;
la størrelse2 = s2.lengde;
// Hvis lengden på begge strengene ikke er den samme,
// det betyr at de ikke kan være anagrammer over hverandre.
// Dermed returner falsk.
hvis (størrelse1! = størrelse2)
{
returner falsk;
}
s1.sort ();
s2.sort ();
for (la i = 0; jeg {
hvis (s1 [i]! = s2 [i])
{
returner falsk;
}
}
returner sant;
}
var s1 = "lytt";
var s2 = "lydløs";
document.write ("String 1:" + s1 + "
");
document.write ("String 2:" + s2 + "
");
hvis (sjekkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Ja, de to strengene er anagrammer av hverandre" + "
");
} annet {
document.write ("Nei, de to strengene er ikke anagrammer av hverandre" + "
");
}
var s3 = "Velkommen til MUO";
var s4 = "MUO til velkomst";
document.write ("String 3:" + s3 + "
");
document.write ("String 4:" + s4 + "
");
hvis (sjekkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Ja, de to strengene er anagrammer av hverandre" + "
");
} annet {
document.write ("Nei, de to strengene er ikke anagrammer av hverandre" + "
");
}
var s5 = "Peter Piper plukket en peck med syltet paprika";
var s6 = "En peck med syltet paprika Peter Piper plukket";
document.write ("String 5:" + s5 + "
");
document.write ("String 6:" + s6 + "
");
hvis (sjekkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Ja, de to strengene er anagrammer av hverandre" + "
");
} annet {
document.write ("Nei, de to strengene er ikke anagrammer av hverandre" + "
");
}
var s7 = "Hun selger skjell ved kysten";
var s8 = "skjell ved kysten";
document.write ("String 7:" + s7 + "
");
document.write ("String 8:" + s8 + "
");
hvis (sjekkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Ja, de to strengene er anagrammer av hverandre" + "
");
} annet {
document.write ("Nei, de to strengene er ikke anagrammer av hverandre" + "
");
}
var s9 = "kreativ";
var s10 = "reaktiv";
document.write ("String 9:" + s9 + "
");
document.write ("String 10:" + s10 + "
");
hvis (sjekkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Ja, de to strengene er anagrammer av hverandre" + "
");
} annet {
document.write ("Nei, de to strengene er ikke anagrammer av hverandre" + "
");
}

Produksjon:

Streng 1: hør
String 2: stille
Ja, de to strengene er anagrammer over hverandre
String 3: Velkommen til MUO
String 4: MUO to Welcome
Ja, de to strengene er anagrammer over hverandre
Streng 5: Peter Piper plukket en peck med syltet paprika
Streng 6: En peck med syltet paprika Peter Piper plukket
Nei, de to strengene er ikke anagrammer over hverandre
String 7: Hun selger skjell ved kysten
String 8: skjell ved kysten
Nei, de to strengene er ikke anagrammer over hverandre
Streng 9: kreativ
Streng 10: reaktiv
Ja, de to strengene er anagrammer over hverandre

I slekt: Hvordan finner du ASCII-verdien til et tegn?

Bruk de riktige ressursene til å lære å kode

Hvis du ønsker å styrke kodingsferdighetene dine, er det viktig å lære nye konsepter og bruke tid på å bruke dem. En måte å gjøre dette på er med programmering av apper, som vil hjelpe deg å lære forskjellige programmeringskonsepter mens du har det gøy samtidig.

Dele
E-post
8 apper som hjelper deg med å lære å kode for internasjonal programmørdag

Vil du pusse opp kodingsferdighetene dine? Disse appene og nettstedene vil hjelpe deg å lære programmering i ditt eget tempo.

Les Neste

Relaterte temaer
  • Programmering
  • JavaScript
  • Python
  • C Programmering
Om forfatteren
Yuvraj Chandra (43 artikler publisert)

Yuvraj er en informatikk-student ved University of Delhi, India. Han brenner for Full Stack Web Development. Når han ikke skriver, utforsker han dybden i forskjellige teknologier.

Mer fra Yuvraj Chandra

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere