Írta: Yuvraj Chandra
Részvény
Email

Az összehasonlítás, ha két szöveges karakterlánc anagramma, nagy problémamegoldó feladat a programozási képességek fejlesztése szempontjából.

Az anagramma egy húr, amelyet egy másik karakter betűinek átrendezésével hoztak létre. Annak ellenőrzése, hogy két húr egymás anagrammája-e, nehéznek tűnhet, de ez csak egy kicsit trükkös és megtévesztően egyszerű. Ebben a cikkben megtudhatja, hogyan ellenőrizheti, hogy két karakterlánc egymás anagrammája-e a C ++, a Python és a JavaScript használatával.

Probléma nyilatkozat

Két s1 és s2 karakterláncot kapsz, ellenőrizni kell, hogy a két karakterlánc egymás anagrammája-e vagy sem.

1. példa: Legyen s1 = "kreatív" és s2 = "reaktív".

Mivel a második húr kialakítható az első húr betűinek átrendezésével és fordítva, így a két húr egymás anagrammája.

2. példa: Legyen s1 = "Peter Piper szedett egy cseppet pácolt paprikát" és s2 = "Peck savanyított paprikát szedett Peter Piper".

Mivel a második karakterlánc nem alakítható ki az első karakterlánc betűinek átrendezésével és fordítva, így a két karakterlánc nem egymás anagrammája.

Folyamat annak ellenőrzésére, hogy két karakterlánc van-e egymás anagrammája

Az alábbi megközelítést követve ellenőrizheti, hogy a két húr egymás anagrammája-e:

  1. Hasonlítsa össze mindkét húr hosszát.
  2. Ha mindkét karakterlánc hossza nem azonos, ez azt jelenti, hogy nem lehetnek egymás anagrammái. Így adjon vissza hamis értéket.
  3. Ha mindkét karakterlánc hossza megegyezik, folytassa tovább.
  4. Rendezze mindkét húrot.
  5. Hasonlítsa össze mindkét rendezett karakterláncot.
  6. Ha mindkét rendezett karakterlánc megegyezik, ez azt jelenti, hogy egymás anagrammái. Így térjen vissza igazra.
  7. Ha mindkét rendezett karakterlánc különbözik, az azt jelenti, hogy nem egymás anagrammái. Így adjon vissza hamis értéket.

Összefüggő: Hogyan ellenőrizhető, hogy egy húr-e a Palindrome

C ++ program annak ellenőrzésére, hogy két húr van-e egymás anagrammája

Az alábbiakban bemutatjuk a C ++ programot annak ellenőrzésére, hogy két húr egymás anagrammája-e vagy sem:

#include 
névtér használata std;
bool checkAnagrams (string s1, string s2)
{
int méret1 = s1.hossz ();
int méret2 = s2.hossz ();
// Ha mindkét karakterlánc hossza nem azonos,
// ez azt jelenti, hogy nem lehetnek egymás anagrammái.
// Így adjon vissza hamis értéket.
if (méret1! = méret2)
{
return false;
}
sort (s1.begin (), s1.end ());
sort (s2.begin (), s2.end ());
for (int i = 0; i {
ha (s1 [i]! = s2 [i])
{
return false;
}
}
return true;
}
int main ()
{
string s1 = "hallgatni";
string s2 = "néma";
cout << "1. karakterlánc:" << s1 << endl;
cout << "2. karakterlánc:" << s2 << endl;
ha (checkAnagrammák (s1, s2))
{
cout << "Igen, a két húr egymás anagrammája" << endl;
}
más
{
cout << "Nem, a két húr nem egymás anagrammája" << endl;
}
string s3 = "Üdvözöljük a MUO-ban";
string s4 = "Üdvözöljük a MUO-t";
cout << "3. karakterlánc:" << s3 << endl;
cout << "4. karakterlánc:" << s4 << endl;
ha (checkAnagrammák (s3, s4))
{
cout << "Igen, a két húr egymás anagrammája" << endl;
}
más
{
cout << "Nem, a két húr nem egymás anagrammája" << endl;
}
string s5 = "Peter Piper kiválasztott egy pecket ecetes paprikából";
string s6 = "Peck pácolt paprikát, amelyet Peter Piper szedett";
cout << "5. karakterlánc:" << s5 << endl;
cout << "6. karakterlánc:" << s6 << endl;
ha (checkAnagrammák (s5, s6))
{
cout << "Igen, a két húr egymás anagrammája" << endl;
}
más
{
cout << "Nem, a két húr nem egymás anagrammája" << endl;
}
string s7 = "Kagylókat ad el a tengerparton";
string s8 = "tengeri kagylók a tengerparton";
cout << "7. karakterlánc:" << s7 << endl;
cout << "8. karakterlánc:" << s8 << endl;
ha (checkAnagrammák (s7, s8))
{
cout << "Igen, a két húr egymás anagrammája" << endl;
}
más
{
cout << "Nem, a két húr nem egymás anagrammája" << endl;
}
string s9 = "kreatív";
string s10 = "reaktív";
cout << "9. karakterlánc:" << s9 << endl;
cout << "10. karakterlánc:" << s10 << endl;
ha (checkAnagrammák (s9, s10))
{
cout << "Igen, a két húr egymás anagrammája" << endl;
}
más
{
cout << "Nem, a két húr nem egymás anagrammája" << endl;
}
visszatér 0;
}

Kimenet:

1. húr: figyelj
2. húr: néma
Igen, a két húr egymás anagrammája
3. húr: Üdvözöljük a MUO-ban
4. húr: Üdvözöljük a MUO-t
Igen, a két húr egymás anagrammája
5. húr: Peter Piper kiválasztott egy csipet ecetes paprikát
6. húr: Peck pácolt paprikát, amelyet Peter Piper szedett
Nem, a két húr nem egymás anagrammája
7. húr: Tengeri kagylókat árul a tengerparton
8. húr: tengeri kagylók a tengerpart mellett
Nem, a két húr nem egymás anagrammája
9. húr: kreatív
10. húr: reaktív
Igen, a két húr egymás anagrammája

Összefüggő: Hogyan számoljuk meg egy adott karakter előfordulását egy húrban

Python program annak ellenőrzésére, hogy két karakterlánc van-e egymás anagrammája

Az alábbiakban bemutatjuk a Python programot annak ellenőrzésére, hogy két karakterlánc egymás anagrammája-e vagy sem:

def checkAnagrammák (s1, s2):
méret1 = len (s1)
size2 = len (s2)
# Ha mindkét karakterlánc hossza nem azonos,
# ez azt jelenti, hogy nem lehetnek egymás anagrammái.
# Így adjon vissza hamis értéket.
ha size1! = size2:
visszatér 0
s1 = rendezve (s1)
s2 = rendezve (s2)
i tartományban (0, méret1):
ha s1 [i]! = s2 [i]:
return False
return True
s1 = "hallgatni"
s2 = "néma"
nyomtatás ("String 1:", s1)
nyomtatás ("2. karakterlánc:", s2)
ha (checkAnagrammák (s1, s2)):
nyomtatás ("Igen, a két húr egymás anagrammája")
más:
nyomtatás ("Nem, a két karakterlánc nem egymás anagrammája")
s3 = "Üdvözöljük a MUO-ban"
s4 = "Üdvözöljük a MUO-t"
nyomtatás ("String 3:", s3)
nyomtatás ("4. karakterlánc:", s4)
ha (checkAnagrammák (s3, s4)):
nyomtatás ("Igen, a két húr egymás anagrammája")
más:
nyomtatás ("Nem, a két karakterlánc nem egymás anagrammája")
s5 = "Peter Piper szedett egy cseppet pácolt paprikát"
s6 = "Egy cseppet pácolt paprikát szedett Peter Piper"
nyomtatás ("String 5:", s5)
nyomtatás ("String 6:", s6)
ha (checkAnagrammák (s5, s6)):
nyomtatás ("Igen, a két húr egymás anagrammája")
más:
nyomtatás ("Nem, a két karakterlánc nem egymás anagrammája")
s7 = "Tengeri kagylókat árul a tengerparton"
s8 = "tengeri kagylók a tengerparton"
nyomtatás ("String 7:", s7)
nyomtatás ("8. karakterlánc:", s8)
ha (checkAnagrammák (s7, s8)):
nyomtatás ("Igen, a két húr egymás anagrammája")
más:
nyomtatás ("Nem, a két karakterlánc nem egymás anagrammája")
s9 = "kreatív"
s10 = "reaktív"
nyomtatás ("String 9:", s9)
nyomtatás ("String 10:", s10)
ha (checkAnagrammák (s9, s10)):
nyomtatás ("Igen, a két húr egymás anagrammája")
más:
nyomtatás ("Nem, a két karakterlánc nem egymás anagrammája")

Kimenet:

1. húr: figyelj
2. húr: néma
Igen, a két húr egymás anagrammája
3. húr: Üdvözöljük a MUO-ban
4. húr: Üdvözöljük a MUO-t
Igen, a két húr egymás anagrammája
5. húr: Peter Piper kiválasztott egy csipet ecetes paprikát
6. húr: Peck pácolt paprikát, amelyet Peter Piper szedett
Nem, a két húr nem egymás anagrammája
7. húr: Tengeri kagylókat árul a tengerparton
8. húr: tengeri kagylók a tengerpart mellett
Nem, a két húr nem egymás anagrammája
9. húr: kreatív
10. húr: reaktív
Igen, a két húr egymás anagrammája

Összefüggő: Hogyan lehet magánhangzókat, mássalhangzókat, számokat és különleges karaktereket találni egy karakterláncban?

Ellenőrizze, hogy két húr-e egymás anagrammája-e a JavaScript-ben

Az alábbiakban látható a JavaScript program annak ellenőrzésére, hogy két karakterlánc-e egymás anagrammája-e vagy sem:

funkcióellenőrzésAnagrammák (s1, s2) {
legyen méret1 = s1.hossz;
legyen méret2 = s2.hossz;
// Ha mindkét karakterlánc hossza nem azonos,
// ez azt jelenti, hogy nem lehetnek egymás anagrammái.
// Így adjon vissza hamis értéket.
if (méret1! = méret2)
{
return false;
}
s1.rendezés ();
s2.rendezés ();
for (legyen i = 0; i {
ha (s1 [i]! = s2 [i])
{
return false;
}
}
return true;
}
var s1 = "hallgatni";
var s2 = "néma";
document.write ("1. karakterlánc:" + s1 + "
");
document.write ("2. karakterlánc:" + s2 + "
");
if (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Igen, a két karakterlánc egymás anagrammája" + "
");
} más {
document.write ("Nem, a két karakterlánc nem anagrammája egymásnak" + "
");
}
var s3 = "Üdvözöljük a MUO-ban";
var s4 = "MUO a Welcome" -be;
document.write ("3. karakterlánc:" + s3 + "
");
document.write ("4. karakterlánc:" + s4 + "
");
if (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Igen, a két karakterlánc egymás anagrammája" + "
");
} más {
document.write ("Nem, a két karakterlánc nem anagrammája egymásnak" + "
");
}
var s5 = "Peter Piper szedett egy cseppet pácolt paprikát";
var s6 = "Peck pácolt paprikát, amelyet Peter Piper szedett";
document.write ("5. karakterlánc:" + s5 + "
");
document.write ("6. karakterlánc:" + s6 + "
");
if (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Igen, a két karakterlánc egymás anagrammája" + "
");
} más {
document.write ("Nem, a két karakterlánc nem anagrammája egymásnak" + "
");
}
var s7 = "Tengeri kagylókat ad el a tengerparton";
var s8 = "tengeri kagylók a tengerparton";
document.write ("7. karakterlánc:" + s7 + "
");
document.write ("8. karakterlánc:" + s8 + "
");
if (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Igen, a két karakterlánc egymás anagrammája" + "
");
} más {
document.write ("Nem, a két karakterlánc nem anagrammája egymásnak" + "
");
}
var s9 = "kreatív";
var s10 = "reaktív";
document.write ("9. karakterlánc:" + s9 + "
");
document.write ("10. karakterlánc:" + s10 + "
");
if (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Igen, a két karakterlánc egymás anagrammája" + "
");
} más {
document.write ("Nem, a két karakterlánc nem anagrammája egymásnak" + "
");
}

Kimenet:

1. húr: figyelj
2. húr: néma
Igen, a két húr egymás anagrammája
3. húr: Üdvözöljük a MUO-ban
4. húr: Üdvözöljük a MUO-t
Igen, a két húr egymás anagrammája
5. húr: Peter Piper kiválasztott egy csipet ecetes paprikát
6. húr: Peck pácolt paprikát, amelyet Peter Piper szedett
Nem, a két húr nem egymás anagrammája
7. húr: Tengeri kagylókat árul a tengerparton
8. húr: tengeri kagylók a tengerpart mellett
Nem, a két húr nem egymás anagrammája
9. húr: kreatív
10. húr: reaktív
Igen, a két húr egymás anagrammája

Összefüggő: Hogyan lehet megtalálni a karakter ASCII értékét?

Használja a megfelelő forrásokat a kódolás megtanulásához

Ha meg akarja erősíteni a kódolási képességeit, fontos új fogalmak elsajátítása és azok felhasználásával töltött idő. Ennek egyik módja a programozó alkalmazások, amelyek segítenek a különböző programozási koncepciók elsajátításában, miközben egyszerre szórakoznak.

Részvény
Email
8 alkalmazás, amelyek segítenek megtanulni a Nemzetközi Programozók Napjának kódját

Kívánja bővíteni kódolási képességeit? Ezek az alkalmazások és webhelyek segítenek megtanulni a programozást a saját tempójában.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • JavaScript
  • Piton
  • C programozás
A szerzőről
Yuvraj Chandra (43 cikk megjelent)

Yuvraj informatikus egyetemi hallgató az indiai Delhi Egyetemen. Szenvedélyes a Full Stack webfejlesztés iránt. Amikor nem ír, a különböző technológiák mélységét kutatja.

Több Yuvraj Chandra-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Kattintson ide a feliratkozáshoz