Het vergelijken of twee tekstreeksen anagrammen zijn, is een geweldige probleemoplossende taak om de programmeervaardigheden te verbeteren.
Een anagram is een reeks die wordt gevormd door de letters van een andere reeks te herschikken. Controleren of twee snaren anagrammen van elkaar zijn klinkt misschien moeilijk, maar het is slechts een beetje lastig en bedrieglijk eenvoudig. In dit artikel leer je hoe je met C++, Python en JavaScript kunt controleren of twee strings anagrammen van elkaar zijn.
Probleemstelling
Je krijgt twee strings s1 en s2, je moet controleren of de twee strings anagrammen van elkaar zijn of niet.
voorbeeld 1: Laat s1 = "creatief" en s2 = "reactief".
Aangezien de tweede reeks kan worden gevormd door de letters van de eerste reeks te herschikken en omgekeerd, zijn de twee reeksen dus anagrammen van elkaar.
Voorbeeld 2: Laat s1 = "Peter Piper plukte een pik van ingelegde paprika's" en s2 = "Een pik van ingelegde paprika's die Peter Piper plukte".
Aangezien de tweede reeks niet kan worden gevormd door de letters van de eerste reeks te herschikken en omgekeerd, zijn de twee reeksen dus geen anagrammen van elkaar.
Proces om te controleren of twee strings anagrammen van elkaar zijn
U kunt de onderstaande benadering volgen om te controleren of de twee strings anagrammen van elkaar zijn:
- Vergelijk de lengte van beide snaren.
- Als de lengte van beide strings niet hetzelfde is, betekent dit dat ze geen anagrammen van elkaar kunnen zijn. Retourneer dus false.
- Als de lengte van beide snaren hetzelfde is, gaat u verder.
- Sorteer beide strings.
- Vergelijk beide gesorteerde strings.
- Als beide gesorteerde strings hetzelfde zijn, betekent dit dat ze anagrammen van elkaar zijn. Retourneer dus waar.
- Als beide gesorteerde strings verschillend zijn, betekent dit dat ze geen anagrammen van elkaar zijn. Retourneer dus false.
Verwant: Hoe te controleren of een string een palindroom is?
C++-programma om te controleren of twee strings anagrammen van elkaar zijn
Hieronder staat het C++ programma om te controleren of twee strings anagrammen van elkaar zijn of niet:
#erbij betrekken
namespace std; gebruiken;
bool checkAnagrammen (string s1, string s2)
{
int size1 = s1.length();
int size2 = s2.length();
// Als de lengte van beide strings niet hetzelfde is,
// het betekent dat ze geen anagrammen van elkaar kunnen zijn.
// Dus retourneer false.
if (maat1 != maat2)
{
onwaar retourneren;
}
sorteren (s1.begin(), s1.end());
sorteren (s2.begin(), s2.end());
voor (int i = 0; ik < maat1; ik++)
{
als (s1[i] != s2[i])
{
onwaar retourneren;
}
}
retourneer waar;
}
int hoofd()
{
string s1 = "luister";
string s2 = "stil";
cout << "String 1: " << s1 << endl;
cout << "String 2: " << s2 << endl;
if (check Anagrammen (s1, s2))
{
cout << "Ja, de twee strings zijn anagrammen van elkaar" << endl;
}
anders
{
cout << "Nee, de twee strings zijn geen anagrammen van elkaar" << endl;
}
string s3 = "Welkom bij MUO";
string s4 = "MUO om te verwelkomen";
cout << "String 3: " << s3 << endl;
cout << "String 4: " << s4 << endl;
if (check Anagrammen (s3, s4))
{
cout << "Ja, de twee strings zijn anagrammen van elkaar" << endl;
}
anders
{
cout << "Nee, de twee strings zijn geen anagrammen van elkaar" << endl;
}
string s5 = "Peter Piper pikte een pik van ingemaakte paprika's";
string s6 = "Een pik van ingemaakte paprika's die Peter Piper heeft geplukt";
cout << "String 5: " << s5 << endl;
cout << "String 6: " << s6 << endl;
if (check Anagrammen (s5, s6))
{
cout << "Ja, de twee strings zijn anagrammen van elkaar" << endl;
}
anders
{
cout << "Nee, de twee strings zijn geen anagrammen van elkaar" << endl;
}
string s7 = "Ze verkoopt schelpen aan de kust";
string s8 = "schelpen aan de kust";
cout << "String 7: " << s7 << endl;
cout << "String 8: " << s8 << endl;
als (controleer Anagrammen (s7, s8))
{
cout << "Ja, de twee strings zijn anagrammen van elkaar" << endl;
}
anders
{
cout << "Nee, de twee strings zijn geen anagrammen van elkaar" << endl;
}
string s9 = "creatief";
string s10 = "reactief";
cout << "String 9: " << s9 << endl;
cout << "String 10: " << s10 << endl;
if (check Anagrammen (s9, s10))
{
cout << "Ja, de twee strings zijn anagrammen van elkaar" << endl;
}
anders
{
cout << "Nee, de twee strings zijn geen anagrammen van elkaar" << endl;
}
retourneer 0;
}
Uitgang:
String 1: luister
String 2: stil
Ja, de twee strings zijn anagrammen van elkaar
String 3: Welkom bij MUO
String 4: MUO om te verwelkomen
Ja, de twee strings zijn anagrammen van elkaar
String 5: Peter Piper plukte een pik van ingemaakte pepers
String 6: Een pik van ingemaakte paprika's die Peter Piper heeft geplukt
Nee, de twee strings zijn geen anagrammen van elkaar
String 7: Ze verkoopt schelpen aan de kust
String 8: schelpen aan de kust
Nee, de twee strings zijn geen anagrammen van elkaar
Tekenreeks 9: creatief
String 10: reactief
Ja, de twee strings zijn anagrammen van elkaar
Verwant: Hoe het voorkomen van een bepaald karakter in een string te tellen
Python-programma om te controleren of twee strings anagrammen van elkaar zijn
Hieronder staat het Python-programma om te controleren of twee strings anagrammen van elkaar zijn of niet:
def checkAnagrammen (s1, s2):
maat1 = lens (s1)
maat2 = lens (s2)
# Als de lengte van beide strings niet hetzelfde is,
# het betekent dat ze geen anagrammen van elkaar kunnen zijn.
# Retourneer dus false.
als maat1 != maat2:
retour 0
s1 = gesorteerd (s1)
s2 = gesorteerd (s2)
voor i binnen bereik (0, maat1):
als s1[i] != s2[i]:
retourneer False
retourneer True
s1 = "luister"
s2 = "stil"
print("String 1:", s1)
print("String 2:", s2)
if (check Anagrammen (s1, s2)):
print("Ja, de twee strings zijn anagrammen van elkaar")
anders:
print("Nee, de twee strings zijn geen anagrammen van elkaar")
s3 = "Welkom bij MUO"
s4 = "MUO om te verwelkomen"
print("String 3:", s3)
print("String 4:", s4)
als (controleer Anagrammen (s3, s4)):
print("Ja, de twee strings zijn anagrammen van elkaar")
anders:
print("Nee, de twee strings zijn geen anagrammen van elkaar")
s5 = "Peter Piper plukte een pik van ingemaakte paprika's"
s6 = "Een pik van ingemaakte paprika's die Peter Piper heeft geplukt"
print("String 5:", s5)
print("String 6:", s6)
als (controleer Anagrammen (s5, s6)):
print("Ja, de twee strings zijn anagrammen van elkaar")
anders:
print("Nee, de twee strings zijn geen anagrammen van elkaar")
s7 = "Ze verkoopt schelpen aan de kust"
s8 = "schelpen aan de kust"
print("String 7:", s7)
print("String 8:", s8)
als (controleer Anagrammen (s7, s8)):
print("Ja, de twee strings zijn anagrammen van elkaar")
anders:
print("Nee, de twee strings zijn geen anagrammen van elkaar")
s9 = "creatief"
s10 = "reactief"
print("String 9:", s9)
print("String 10:", s10)
if (check Anagrammen (s9, s10)):
print("Ja, de twee strings zijn anagrammen van elkaar")
anders:
print("Nee, de twee strings zijn geen anagrammen van elkaar")
Uitgang:
String 1: luister
String 2: stil
Ja, de twee strings zijn anagrammen van elkaar
String 3: Welkom bij MUO
String 4: MUO om te verwelkomen
Ja, de twee strings zijn anagrammen van elkaar
String 5: Peter Piper plukte een pik van ingemaakte pepers
String 6: Een pik van ingemaakte paprika's die Peter Piper heeft geplukt
Nee, de twee strings zijn geen anagrammen van elkaar
String 7: Ze verkoopt schelpen aan de kust
String 8: schelpen aan de kust
Nee, de twee strings zijn geen anagrammen van elkaar
Tekenreeks 9: creatief
String 10: reactief
Ja, de twee strings zijn anagrammen van elkaar
Verwant: Klinkers, medeklinkers, cijfers en speciale tekens in een string vinden
Controleer of twee strings anagrammen van elkaar zijn in JavaScript
Hieronder staat het JavaScript-programma om te controleren of twee strings anagrammen van elkaar zijn of niet:
functiecontroleAnagrammen (s1, s2) {
laat maat1 = s1.lengte;
laat size2 = s2.length;
// Als de lengte van beide strings niet hetzelfde is,
// het betekent dat ze geen anagrammen van elkaar kunnen zijn.
// Dus retourneer false.
if (maat1 != maat2)
{
onwaar retourneren;
}
s1.sort();
s2.sort();
voor (laat ik = 0; ik < maat1; ik++)
{
als (s1[i] != s2[i])
{
onwaar retourneren;
}
}
retourneer waar;
}
var s1 = "luister";
var s2 = "stil";
document.write("String 1: " + s1 + "
");
document.write("String 2: " + s2 + "
");
if (checkAnagrams (s1.split(""), s2.split(""))) {
document.write("Ja, de twee strings zijn anagrammen van elkaar" + "
");
} anders {
document.write("Nee, de twee strings zijn geen anagrammen van elkaar" + "
");
}
var s3 = "Welkom bij MUO";
var s4 = "MUO om te verwelkomen";
document.write("String 3: " + s3 + "
");
document.write("String 4: " + s4 + "
");
if (checkAnagrams (s3.split(""), s4.split(""))) {
document.write("Ja, de twee strings zijn anagrammen van elkaar" + "
");
} anders {
document.write("Nee, de twee strings zijn geen anagrammen van elkaar" + "
");
}
var s5 = "Peter Piper plukte een pik van ingemaakte paprika's";
var s6 = "Een pik van ingemaakte pepers die Peter Piper heeft geplukt";
document.write("String 5: " + s5 + "
");
document.write("String 6: " + s6 + "
");
if (check Anagrammen (s5.split(""), s6.split(""))) {
document.write("Ja, de twee strings zijn anagrammen van elkaar" + "
");
} anders {
document.write("Nee, de twee strings zijn geen anagrammen van elkaar" + "
");
}
var s7 = "Ze verkoopt schelpen aan de kust";
var s8 = "schelpen aan de kust";
document.write("String 7: " + s7 + "
");
document.write("String 8: " + s8 + "
");
if (checkAnagrams (s7.split(""), s8.split(""))) {
document.write("Ja, de twee strings zijn anagrammen van elkaar" + "
");
} anders {
document.write("Nee, de twee strings zijn geen anagrammen van elkaar" + "
");
}
var s9 = "creatief";
var s10 = "reactief";
document.write("String 9: " + s9 + "
");
document.write("String 10: " + s10 + "
");
if (checkAnagrams (s9.split(""), s10.split(""))) {
document.write("Ja, de twee strings zijn anagrammen van elkaar" + "
");
} anders {
document.write("Nee, de twee strings zijn geen anagrammen van elkaar" + "
");
}
Uitgang:
String 1: luister
String 2: stil
Ja, de twee strings zijn anagrammen van elkaar
String 3: Welkom bij MUO
String 4: MUO om te verwelkomen
Ja, de twee strings zijn anagrammen van elkaar
String 5: Peter Piper plukte een pik van ingemaakte pepers
String 6: Een pik van ingemaakte paprika's die Peter Piper heeft geplukt
Nee, de twee strings zijn geen anagrammen van elkaar
String 7: Ze verkoopt schelpen aan de kust
String 8: schelpen aan de kust
Nee, de twee strings zijn geen anagrammen van elkaar
Tekenreeks 9: creatief
String 10: reactief
Ja, de twee strings zijn anagrammen van elkaar
Verwant: Hoe vind je de ASCII-waarde van een personage?
Gebruik de juiste bronnen om te leren coderen
Als u uw codeervaardigheden wilt versterken, is het belangrijk om nieuwe concepten te leren en tijd te besteden aan het gebruik ervan. Een manier om dit te doen is met programmeer-apps, waarmee je verschillende programmeerconcepten kunt leren terwijl je tegelijkertijd plezier hebt.
Wil je je codeervaardigheden opfrissen? Met deze apps en websites leer je programmeren in je eigen tempo.
Lees volgende
- Programmeren
- JavaScript
- Python
- C Programmeren
Yuvraj is een student Computerwetenschappen aan de Universiteit van Delhi, India. Hij is gepassioneerd door Full Stack Web Development. Als hij niet aan het schrijven is, onderzoekt hij de diepte van verschillende technologieën.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren