Autor Yuvraj Chandra
Jaga
E-post

Võrreldes seda, kas kaks tekstistringi on anagrammid, on suur probleemilahendusülesanne programmeerimisoskuste parandamiseks.

Anagramm on string, mis on moodustatud erineva stringi tähtede ümberkorraldamisel. Kontrollimine, kas kaks stringi on üksteise anagrammid, võib tunduda keeruline, kuid see on vaid veidi keeruline ja petlikult sirgjooneline. Selles artiklis saate teada, kuidas C ++, Pythoni ja JavaScripti abil kontrollida, kas kaks stringi on üksteise anagrammid.

Probleemipüstituses

Teile antakse kaks stringi s1 ja s2, peate kontrollima, kas need kaks stringi on üksteise anagrammid või mitte.

Näide 1: Olgu s1 = "loominguline" ja s2 = "reaktiivne".

Kuna teise stringi saab moodustada esimese stringi tähtede ümberkorraldamisega ja vastupidi, on need kaks stringi üksteise anagrammid.

Näide 2: Olgu s1 = "Peter Piper korjas nokikese marineeritud paprikat" ja s2 = "Peck marineeritud paprikat, mille Peter Piper korjas".

instagram viewer

Kuna teist stringi ei saa moodustada esimese stringi tähtede ümberkorraldamisega ja vastupidi, ei ole need kaks stringi üksteise anagrammid.

Protsess kontrollimaks, kas kaks stringi on üksteise anagrammid

Võite järgida allolevat lähenemisviisi, et kontrollida, kas kaks stringi on üksteise anagrammid:

  1. Võrrelge mõlema stringi pikkust.
  2. Kui mõlema stringi pikkus ei ole sama, tähendab see, et nad ei saa olla üksteise anagrammid. Seega tagastage vale.
  3. Kui mõlema stringi pikkus on sama, jätkake edasi.
  4. Sorteerige mõlemad stringid.
  5. Võrrelge mõlemat sorteeritud stringi.
  6. Kui mõlemad sorteeritud stringid on ühesugused, tähendab see, et nad on üksteise anagrammid. Seega naaske tõene.
  7. Kui mõlemad sorteeritud stringid on erinevad, tähendab see, et nad pole üksteise anagrammid. Seega tagastage vale.

Seotud: Kuidas kontrollida, kas string on palindroom

C ++ programm kontrollimaks, kas kaks stringi on üksteise anagrammid

Allpool on C ++ programm, et kontrollida, kas kaks stringi on üksteise anagrammid või mitte:

# kaasata 
nimeruumi kasutamine std;
bool checkAnagrammid (string s1, string s2)
{
int suurus1 = s1.pikkus ();
int suurus2 = s2.pikkus ();
// Kui mõlema stringi pikkus pole sama,
// see tähendab, et nad ei saa olla üksteise anagrammid.
// Seega tagastage väär.
kui (suurus1! = suurus2)
{
return false;
}
sort (s1.begin (), s1.end ());
sort (s2.begin (), s2.end ());
for (int i = 0; i {
kui (s1 [i]! = s2 [i])
{
return false;
}
}
return true;
}
int main ()
{
string s1 = "kuulama";
string s2 = "vaikne";
cout << "String 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
kui (checkAnagrammid (s1, s2))
{
cout << "Jah, need kaks stringi on üksteise anagrammid" << endl;
}
muud
{
cout << "Ei, need kaks stringi pole üksteise anagrammid" << endl;
}
string s3 = "Tere tulemast MUO-sse";
string s4 = "MUO tere tulemast";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
kui (checkAnagrammid (s3, s4))
{
cout << "Jah, need kaks stringi on üksteise anagrammid" << endl;
}
muud
{
cout << "Ei, need kaks stringi pole üksteise anagrammid" << endl;
}
string s5 = "Peter Piper korjas nokikese marineeritud paprikat";
string s6 = "Pick marineeritud paprikast, mille Peter Piper korjas";
cout << "String 5:" << s5 << endl;
cout << "String 6:" << s6 << endl;
kui (checkAnagrammid (s5, s6))
{
cout << "Jah, need kaks stringi on üksteise anagrammid" << endl;
}
muud
{
cout << "Ei, need kaks stringi pole üksteise anagrammid" << endl;
}
string s7 = "Ta müüb merekarpe mereranna ääres";
string s8 = "merekarbid mereranna ääres";
cout << "String 7:" << s7 << endl;
cout << "String 8:" << s8 << endl;
kui (checkAnagrammid (s7, s8))
{
cout << "Jah, need kaks stringi on üksteise anagrammid" << endl;
}
muud
{
cout << "Ei, need kaks stringi pole üksteise anagrammid" << endl;
}
string s9 = "loominguline";
string s10 = "reaktiivne";
cout << "String 9:" << s9 << endl;
cout << "String 10:" << s10 << endl;
kui (checkAnagrammid (s9, s10))
{
cout << "Jah, need kaks stringi on üksteise anagrammid" << endl;
}
muud
{
cout << "Ei, need kaks stringi pole üksteise anagrammid" << endl;
}
tagastama 0;
}

Väljund:

1. string: kuulake
2. string: vaikne
Jah, need kaks keelt on üksteise anagrammid
String 3: Tere tulemast MUO-sse
String 4: MUO tere tulemast
Jah, need kaks keelt on üksteise anagrammid
String 5: Peter Piper korjas nokikese marineeritud paprikat
String 6: Peck marineeritud paprika Peter Piper korjas
Ei, need kaks keelt pole üksteise anagrammid
String 7: Ta müüb merekarpe mereranna ääres
8. string: merekarbid mereranna ääres
Ei, need kaks keelt pole üksteise anagrammid
String 9: loominguline
String 10: reaktiivne
Jah, need kaks keelt on üksteise anagrammid

Seotud: Kuidas loendada stringis antud tegelase esinemisi

Pythoni programm, et kontrollida, kas kaks stringi on üksteise anagrammid

Allpool on Pythoni programm, et kontrollida, kas kaks stringi on üksteise anagrammid või mitte:

def kontroll Anagrammid (s1, s2):
suurus1 = len (s1)
suurus2 = len (s2)
# Kui mõlema stringi pikkus pole sama,
# see tähendab, et nad ei saa olla üksteise anagrammid.
# Seega tagastage vale.
kui suurus1! = suurus2:
tagastage 0
s1 = sorteeritud (s1)
s2 = sorteeritud (s2)
i jaoks vahemikus (0, suurus1):
kui s1 [i]! = s2 [i]:
tagastama Vale
return True
s1 = "kuula"
s2 = "vaikne"
print ("String 1:", s1)
print ("String 2:", s2)
kui (checkAnagrammid (s1, s2)):
print ("Jah, need kaks stringi on üksteise anagrammid")
muu:
print ("Ei, need kaks stringi ei ole üksteise anagrammid")
s3 = "Tere tulemast MUO-sse"
s4 = "MUO tere tulemast"
print ("String 3:", s3)
print ("String 4:", s4)
kui (checkAnagrammid (s3, s4)):
print ("Jah, need kaks stringi on üksteise anagrammid")
muu:
print ("Ei, need kaks stringi ei ole üksteise anagrammid")
s5 = "Peter Piper korjas nokikese marineeritud paprikat"
s6 = "Peck marineeritud paprikat, mille Peter Piper korjas"
print ("String 5:", s5)
print ("String 6:", s6)
kui (checkAnagrammid (s5, s6)):
print ("Jah, need kaks stringi on üksteise anagrammid")
muu:
print ("Ei, need kaks stringi ei ole üksteise anagrammid")
s7 = "Ta müüb merekarpe mereranna ääres"
s8 = "merekarbid mereranna ääres"
print ("String 7:", s7)
print ("String 8:", s8)
kui (checkAnagrammid (s7, s8)):
print ("Jah, need kaks stringi on üksteise anagrammid")
muu:
print ("Ei, need kaks stringi ei ole üksteise anagrammid")
s9 = "loov"
s10 = "reaktiivne"
print ("String 9:", s9)
print ("String 10:", s10)
kui (checkAnagrammid (s9, s10)):
print ("Jah, need kaks stringi on üksteise anagrammid")
muu:
print ("Ei, need kaks stringi ei ole üksteise anagrammid")

Väljund:

1. string: kuulake
2. string: vaikne
Jah, need kaks keelt on üksteise anagrammid
String 3: Tere tulemast MUO-sse
String 4: MUO tere tulemast
Jah, need kaks keelt on üksteise anagrammid
String 5: Peter Piper korjas nokikese marineeritud paprikat
String 6: Peck marineeritud paprika Peter Piper korjas
Ei, need kaks keelt pole üksteise anagrammid
String 7: Ta müüb merekarpe mereranna ääres
8. string: merekarbid mereranna ääres
Ei, need kaks keelt pole üksteise anagrammid
String 9: loominguline
String 10: reaktiivne
Jah, need kaks keelt on üksteise anagrammid

Seotud: Kuidas leida stringist täishäälikuid, kaashäälikuid, numbreid ja erimärke

Kontrollige, kas kaks stringi on JavaScriptis üksteise anagrammid

Allpool on JavaScripti programm, et kontrollida, kas kaks stringi on üksteise anagrammid või mitte:

funktsiooni kontrollAnagrammid (s1, s2) {
olgu suurus1 = s1.pikkus;
olgu suurus2 = s2.pikkus;
// Kui mõlema stringi pikkus pole sama,
// see tähendab, et nad ei saa olla üksteise anagrammid.
// Seega tagastage väär.
kui (suurus1! = suurus2)
{
return false;
}
s1.sort ();
s2.sorteeri ();
for (olgu i = 0; i {
kui (s1 [i]! = s2 [i])
{
return false;
}
}
return true;
}
var s1 = "kuulama";
var s2 = "vaikne";
document.write ("String 1:" + s1 + "
");
document.write ("String 2:" + s2 + "
");
kui (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Jah, need kaks stringi on üksteise anagrammid" + "
");
} muu {
document.write ("Ei, need kaks stringi pole üksteise anagrammid" + "
");
}
var s3 = "Tere tulemast MUO-sse";
var s4 = "MUO tere tulemast";
document.write ("String 3:" + s3 + "
");
document.write ("String 4:" + s4 + "
");
kui (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Jah, need kaks stringi on üksteise anagrammid" + "
");
} muu {
document.write ("Ei, need kaks stringi pole üksteise anagrammid" + "
");
}
var s5 = "Peter Piper korjas nokikese marineeritud paprikat";
var s6 = "Peck marineeritud paprikat, mille Peter Piper korjas";
document.write ("String 5:" + s5 + "
");
document.write ("String 6:" + s6 + "
");
kui (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Jah, need kaks stringi on üksteise anagrammid" + "
");
} muu {
document.write ("Ei, need kaks stringi pole üksteise anagrammid" + "
");
}
var s7 = "Ta müüb merekarpe mereranna ääres";
var s8 = "merekarbid mereranna ääres";
document.write ("String 7:" + s7 + "
");
document.write ("String 8:" + s8 + "
");
kui (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Jah, need kaks stringi on üksteise anagrammid" + "
");
} muu {
document.write ("Ei, need kaks stringi pole üksteise anagrammid" + "
");
}
var s9 = "loominguline";
var s10 = "reaktiivne";
document.write ("String 9:" + s9 + "
");
document.write ("String 10:" + s10 + "
");
kui (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Jah, need kaks stringi on üksteise anagrammid" + "
");
} muu {
document.write ("Ei, need kaks stringi pole üksteise anagrammid" + "
");
}

Väljund:

1. string: kuulake
2. string: vaikne
Jah, need kaks keelt on üksteise anagrammid
String 3: Tere tulemast MUO-sse
String 4: MUO tere tulemast
Jah, need kaks keelt on üksteise anagrammid
String 5: Peter Piper korjas nokikese marineeritud paprikat
String 6: Peck marineeritud paprika Peter Piper korjas
Ei, need kaks keelt pole üksteise anagrammid
String 7: Ta müüb merekarpe mereranna ääres
8. string: merekarbid mereranna ääres
Ei, need kaks keelt pole üksteise anagrammid
String 9: loominguline
String 10: reaktiivne
Jah, need kaks keelt on üksteise anagrammid

Seotud: Kuidas leida märgi ASCII väärtus?

Kodeerimise õppimiseks kasutage õigeid ressursse

Kui soovite oma kodeerimisoskusi kindlustada, on oluline õppida uusi mõisteid ja veeta nende kasutamisel aega. Üks võimalus selleks on programmeerimisrakendused, mis aitavad teil samal ajal lõbutsedes õppida erinevaid programmeerimiskontseptsioone.

Jaga
E-post
8 rakendust, mis aitavad teil õppida programmeerijate päeva koodeksit

Kas soovite oma kodeerimisoskusi täiendada? Need rakendused ja veebisaidid aitavad teil õppida programmeerimist omas tempos.

Loe edasi

Seotud teemad
  • Programmeerimine
  • JavaScripti
  • Python
  • C Programmeerimine
Autori kohta
Yuvraj Chandra (43 artiklit on avaldatud)

Yuvraj on arvutiteaduse eriala üliõpilane Delhis, Indias. Ta on kirglik Full Stacki veebiarenduse vastu. Kui ta ei kirjuta, uurib ta erinevate tehnoloogiate sügavust.

Veel Yuvraj Chandrast

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin