Napisao Yuvraj Chandra
Udio
E-mail

Usporedba ako su dva tekstna niza anagrami velik je zadatak rješavanja problema za poboljšanje vještina programiranja.

Anagram je niz nastao preuređivanjem slova drugog niza. Provjera jesu li dvije žice međusobni anagrami možda zvuči teško, ali to je samo malo škakljivo i varljivo jednostavno. U ovom ćete članku naučiti kako provjeriti jesu li dva niza anagrami jedan drugog koristeći C ++, Python i JavaScript.

Izjava o problemu

Dobili ste dva niza s1 i s2, morate provjeriti jesu li dva niza anagrami ili ne.

Primjer 1: Neka s1 = "kreativno" i s2 = "reaktivno".

Budući da se drugi niz može oblikovati preslagivanjem slova prvog niza i obrnuto, tako su dva niza međusobni anagrami.

Primjer 2: Neka s1 = "Peter Piper je ubrao kiselu ukiseljenu papriku" i s2 = "Kulju ukiseljene paprike koju je Peter Piper ubrao".

Budući da se drugi niz ne može oblikovati preslagivanjem slova prvog niza i obratno, tako dva niza nisu anagrami jedan drugog.

instagram viewer

Proces provjere jesu li dvije žice međusobni anagrami

Možete slijediti donji pristup kako biste provjerili jesu li dva niza anagrami jedan drugog:

  1. Usporedite duljinu obje žice.
  2. Ako duljina oba niza nije ista, to znači da oni ne mogu biti anagrami jedan drugog. Dakle, vratite false.
  3. Ako je duljina obje žice ista, nastavite dalje.
  4. Poredaj obje žice.
  5. Usporedite oba razvrstana niza.
  6. Ako su oba poredana niza ista, to znači da su međusobno anagrami. Dakle, vratite se istinito.
  7. Ako su oba poredana niza različita, znači da nisu međusobni anagrami. Dakle, vratite false.

Povezano: Kako provjeriti je li žica palindrom

Program C ++ za provjeru jesu li dva niza međusobni anagrami

Ispod je program C ++ za provjeru jesu li dva niza anagrami jedan drugog ili nisu:

#include 
pomoću prostora imena std;
bool checkAnagrams (niz s1, niz s2)
{
int size1 = s1.length ();
int size2 = s2.length ();
// Ako duljina oba niza nije ista,
// to znači da ne mogu biti anagrami jedni drugima.
// Dakle, vrati false.
ako (veličina1! = veličina2)
{
return false;
}
poredak (s1.begin (), s1.end ());
sortiranje (s2.begin (), s2.end ());
za (int i = 0; i {
ako (s1 [i]! = s2 [i])
{
return false;
}
}
povratak istinit;
}
int main ()
{
niz s1 = "slušaj";
niz s2 = "tiho";
cout << "Niz 1:" << s1 << endl;
cout << "Niz 2:" << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Da, dvije žice su međusobni anagrami" << endl;
}
drugo
{
cout << "Ne, dvije žice nisu međusobni anagrami" << endl;
}
string s3 = "Dobrodošli u MUO";
string s4 = "MUO za dobrodošlicu";
cout << "Niz 3:" << s3 << endl;
cout << "Niz 4:" << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Da, dvije žice su međusobni anagrami" << endl;
}
drugo
{
cout << "Ne, dvije žice nisu međusobni anagrami" << endl;
}
string s5 = "Peter Piper ubrao je knedlu ukiseljene paprike";
string s6 = "Ključka ukiseljene paprike koju je Peter Piper ubrao";
cout << "Niz 5:" << s5 << endl;
cout << "Niz 6:" << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Da, dvije žice su međusobni anagrami" << endl;
}
drugo
{
cout << "Ne, dvije žice nisu međusobni anagrami" << endl;
}
string s7 = "Prodaje školjke uz obalu mora";
niz s8 = "školjke uz morsku obalu";
cout << "Niz 7:" << s7 << endl;
cout << "Niz 8:" << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Da, dvije žice su međusobni anagrami" << endl;
}
drugo
{
cout << "Ne, dvije žice nisu međusobni anagrami" << endl;
}
niz s9 = "kreativan";
niz s10 = "reaktivan";
cout << "Niz 9:" << s9 << endl;
cout << "Niz 10:" << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Da, dvije žice su međusobni anagrami" << endl;
}
drugo
{
cout << "Ne, dvije žice nisu međusobni anagrami" << endl;
}
return 0;
}

Izlaz:

Niz 1: slušajte
Niz 2: tiho
Da, dvije žice su međusobni anagrami
Niz 3: Dobrodošli u MUO
Niz 4: MUO za dobrodošlicu
Da, dvije žice su međusobni anagrami
Niz 5: Peter Piper ubrao je trup ukiseljene paprike
Niz 6: Ključka ukiseljene paprike koju je Peter Piper ubrao
Ne, dvije žice nisu međusobni anagrami
Niz 7: Prodaje školjke uz obalu mora
Niz 8: školjke uz morsku obalu
Ne, dvije žice nisu međusobni anagrami
Niz 9: kreativan
Niz 10: reaktivan
Da, dvije žice su međusobni anagrami

Povezano: Kako brojati pojave datog lika u nizu

Python program za provjeru jesu li dvije žice međusobni anagrami

Ispod je program Python za provjeru jesu li dva niza anagrami jedan drugog ili nisu:

def checkAnagrams (s1, s2):
veličina1 = len (s1)
veličina2 = len (s2)
# Ako duljina oba niza nije ista,
# to znači da ne mogu biti anagrami jedni drugima.
# Dakle, vratite false.
ako je veličina1! = veličina2:
povratak 0
s1 = razvrstano (s1)
s2 = razvrstano (s2)
za i u rasponu (0, veličina1):
ako je s1 [i]! = s2 [i]:
povratak False
povratak True
s1 = "slušaj"
s2 = "tiho"
ispis ("Niz 1:", s1)
ispis ("Niz 2:", s2)
if (checkAnagrams (s1, s2)):
print ("Da, dva niza su međusobni anagrami")
drugo:
print ("Ne, dva niza nisu međusobni anagrami")
s3 = "Dobrodošli u MUO"
s4 = "MUO za dobrodošlicu"
ispis ("Niz 3:", s3)
ispis ("Niz 4:", s4)
if (checkAnagrams (s3, s4)):
print ("Da, dva niza su međusobni anagrami")
drugo:
print ("Ne, dva niza nisu međusobni anagrami")
s5 = "Peter Piper ubrao je kiselu kiselu papriku"
s6 = "Klatina ukiseljene paprike koju je Peter Piper ubrao"
ispis ("Niz 5:", s5)
ispis ("Niz 6:", s6)
if (checkAnagrams (s5, s6)):
print ("Da, dva niza su međusobni anagrami")
drugo:
print ("Ne, dva niza nisu međusobni anagrami")
s7 = "Prodaje školjke uz obalu mora"
s8 = "školjke uz obalu mora"
ispis ("Niz 7:", s7)
ispis ("Niz 8:", s8)
if (checkAnagrams (s7, s8)):
print ("Da, dva niza su međusobni anagrami")
drugo:
print ("Ne, dva niza nisu međusobni anagrami")
s9 = "kreativno"
s10 = "reaktivan"
ispis ("Niz 9:", s9)
ispis ("Niz 10:", s10)
if (checkAnagrams (s9, s10)):
print ("Da, dva niza su međusobni anagrami")
drugo:
print ("Ne, dva niza nisu međusobni anagrami")

Izlaz:

Niz 1: slušajte
Niz 2: tiho
Da, dvije žice su međusobni anagrami
Niz 3: Dobrodošli u MUO
Niz 4: MUO za dobrodošlicu
Da, dvije žice su međusobni anagrami
Niz 5: Peter Piper ubrao je trup ukiseljene paprike
Niz 6: Ključka ukiseljene paprike koju je Peter Piper ubrao
Ne, dvije žice nisu međusobni anagrami
Niz 7: Prodaje školjke uz obalu mora
Niz 8: školjke uz morsku obalu
Ne, dvije žice nisu međusobni anagrami
Niz 9: kreativan
Niz 10: reaktivan
Da, dvije žice su međusobni anagrami

Povezano: Kako pronaći samoglasnike, suglasnike, znamenke i posebne znakove u nizu

Provjerite jesu li dva niza međusobni anagrami u JavaScript-u

Ispod je JavaScript program za provjeru jesu li dva niza anagrami ili nisu:

function checkAnagrams (s1, s2) {
neka veličina1 = s1.duljina;
neka veličina2 = s2.duljina;
// Ako duljina oba niza nije ista,
// to znači da ne mogu biti anagrami jedni drugima.
// Dakle, vrati false.
ako (veličina1! = veličina2)
{
return false;
}
s1.sort ();
s2.sort ();
za (neka je i = 0; i {
ako (s1 [i]! = s2 [i])
{
return false;
}
}
povratak istinit;
}
var s1 = "slušaj";
var s2 = "tiho";
document.write ("Niz 1:" + s1 + "
");
document.write ("Niz 2:" + s2 + "
");
if (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Da, dva niza su međusobni anagrami" + "
");
} ostalo {
document.write ("Ne, dva niza nisu međusobni anagrami" + "
");
}
var s3 = "Dobrodošli u MUO";
var s4 = "MUO za dobrodošlicu";
document.write ("Niz 3:" + s3 + "
");
document.write ("Niz 4:" + s4 + "
");
if (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Da, dva niza su međusobni anagrami" + "
");
} ostalo {
document.write ("Ne, dva niza nisu međusobni anagrami" + "
");
}
var s5 = "Peter Piper ubrao je papriku ukiseljene paprike";
var s6 = "Klatina ukiseljene paprike koju je Peter Piper ubrao";
document.write ("Niz 5:" + s5 + "
");
document.write ("Niz 6:" + s6 + "
");
if (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Da, dva niza su međusobni anagrami" + "
");
} ostalo {
document.write ("Ne, dva niza nisu međusobni anagrami" + "
");
}
var s7 = "Prodaje školjke uz obalu mora";
var s8 = "školjke uz morsku obalu";
document.write ("Niz 7:" + s7 + "
");
document.write ("Niz 8:" + s8 + "
");
if (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Da, dva niza su međusobni anagrami" + "
");
} ostalo {
document.write ("Ne, dva niza nisu međusobni anagrami" + "
");
}
var s9 = "kreativno";
var s10 = "reaktivan";
document.write ("Niz 9:" + s9 + "
");
document.write ("Niz 10:" + s10 + "
");
if (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Da, dva niza su međusobni anagrami" + "
");
} ostalo {
document.write ("Ne, dva niza nisu međusobni anagrami" + "
");
}

Izlaz:

Niz 1: slušajte
Niz 2: tiho
Da, dvije žice su međusobni anagrami
Niz 3: Dobrodošli u MUO
Niz 4: MUO za dobrodošlicu
Da, dvije žice su međusobni anagrami
Niz 5: Peter Piper ubrao je trup ukiseljene paprike
Niz 6: Ključka ukiseljene paprike koju je Peter Piper ubrao
Ne, dvije žice nisu međusobni anagrami
Niz 7: Prodaje školjke uz obalu mora
Niz 8: školjke uz morsku obalu
Ne, dvije žice nisu međusobni anagrami
Niz 9: kreativan
Niz 10: reaktivan
Da, dvije žice su međusobni anagrami

Povezano: Kako pronaći ASCII vrijednost lika?

Koristite prave resurse da biste naučili kodirati

Ako želite učvrstiti svoje vještine kodiranja, važno je naučiti nove koncepte i potrošiti vrijeme koristeći ih. Jedan od načina za to je pomoću programa za programiranje, koji će vam pomoći da naučite različite programske koncepte, istovremeno se zabavljajući.

Udio
E-mail
8 aplikacija koje će vam pomoći naučiti kodirati za Međunarodni dan programera

Želite li razraditi svoje vještine kodiranja? Te će vam aplikacije i web stranice pomoći da naučite programirati vlastitim tempom.

Pročitajte Dalje

Povezane teme
  • Programiranje
  • JavaScript
  • Piton
  • C Programiranje
O autoru
Yuvraj Chandra (Objavljeno 43 članka)

Yuvraj je studentica preddiplomskog studija računarstva na Sveučilištu u Delhiju u Indiji. Zaljubljenik je u Full Stack web razvoj. Kad ne piše, istražuje dubinu različitih tehnologija.

Više od Yuvraja Chandre

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje da biste se pretplatili