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:
- Hasonlítsa össze mindkét húr hosszát.
- 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 mindkét karakterlánc hossza megegyezik, folytassa tovább.
- Rendezze mindkét húrot.
- Hasonlítsa össze mindkét rendezett karakterláncot.
- Ha mindkét rendezett karakterlánc megegyezik, ez azt jelenti, hogy egymás anagrammái. Így térjen vissza igazra.
- 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.
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
- Programozás
- JavaScript
- Piton
- C programozás
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.
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