Der Vergleich, ob zwei Textzeichenfolgen Anagramme sind, ist eine großartige Problemlösungsaufgabe, um die Programmierkenntnisse zu verbessern.
Ein Anagramm ist eine Zeichenfolge, die durch Neuanordnung der Buchstaben einer anderen Zeichenfolge gebildet wird. Zu überprüfen, ob zwei Saiten Anagramme voneinander sind, mag schwierig klingen, aber es ist nur ein wenig knifflig und täuschend einfach. In diesem Artikel erfahren Sie, wie Sie mit C++, Python und JavaScript überprüfen, ob zwei Strings Anagramme voneinander sind.
Problemstellung
Sie erhalten zwei Strings s1 und s2, Sie müssen überprüfen, ob die beiden Strings Anagramme voneinander sind oder nicht.
Beispiel 1: Sei s1 = "kreativ" und s2 = "reaktiv".
Da die zweite Zeichenfolge durch Umordnen der Buchstaben der ersten Zeichenfolge und umgekehrt gebildet werden kann, sind die beiden Zeichenfolgen somit Anagramme voneinander.
Beispiel 2: Sei s1 = "Peter Piper hat ein Päckchen eingelegte Paprika gepflückt" und s2 = "Ein Päckchen eingelegte Paprika, Peter Piper hat gepflückt".
Da die zweite Zeichenfolge nicht durch Neuanordnung der Buchstaben der ersten Zeichenfolge und umgekehrt gebildet werden kann, sind die beiden Zeichenfolgen keine Anagramme voneinander.
Verfahren zur Überprüfung, ob zwei Strings Anagramme voneinander sind
Sie können dem folgenden Ansatz folgen, um zu überprüfen, ob die beiden Zeichenfolgen Anagramme voneinander sind:
- Vergleichen Sie die Länge beider Strings.
- Wenn die Länge beider Strings nicht gleich ist, bedeutet dies, dass sie keine Anagramme voneinander sein können. Geben Sie daher false zurück.
- Wenn die Länge beider Strings gleich ist, fahren Sie fort.
- Sortieren Sie beide Zeichenfolgen.
- Vergleichen Sie beide sortierten Strings.
- Wenn beide sortierten Strings gleich sind, bedeutet dies, dass sie Anagramme voneinander sind. Geben Sie also true zurück.
- Wenn beide sortierten Strings unterschiedlich sind, bedeutet dies, dass sie keine Anagramme voneinander sind. Geben Sie daher false zurück.
Verwandt: So prüfen Sie, ob ein String ein Palindrom ist
C++-Programm, um zu überprüfen, ob zwei Strings Anagramme voneinander sind
Unten ist das C++-Programm, um zu überprüfen, ob zwei Strings Anagramme voneinander sind oder nicht:
#enthalten
Verwenden des Namensraums std;
bool checkAnagrams (String s1, String s2)
{
int size1 = s1.length();
int size2 = s2.length();
// Wenn die Länge beider Strings nicht gleich ist,
// Das bedeutet, dass sie keine Anagramme voneinander sein können.
// Also false zurückgeben.
if (Größe1 != Größe2)
{
falsch zurückgeben;
}
sortieren (s1.begin(), s1.end());
sortieren (s2.begin(), s2.end());
für (int i = 0; ich < Größe1; ich++)
{
wenn (s1[i] != s2[i])
{
falsch zurückgeben;
}
}
true zurückgeben;
}
int main()
{
string s1 = "hören";
Zeichenfolge s2 = "still";
cout << "Zeichenfolge 1: " << s1 << endl;
cout << "Zeichenfolge 2: " << s2 << endl;
if (checkAnagramme (s1, s2))
{
cout << "Ja, die beiden Strings sind Anagramme voneinander" << endl;
}
anders
{
cout << "Nein, die beiden Strings sind keine Anagramme voneinander" << endl;
}
string s3 = "Willkommen bei MUO";
string s4 = "MUO zur Begrüßung";
cout << "String 3: " << s3 << endl;
cout << "String 4: " << s4 << endl;
if (checkAnagramme (s3, s4))
{
cout << "Ja, die beiden Strings sind Anagramme voneinander" << endl;
}
anders
{
cout << "Nein, die beiden Strings sind keine Anagramme voneinander" << endl;
}
string s5 = "Peter Piper hat ein Päckchen eingelegte Paprika gepflückt";
string s6 = "Ein Päckchen eingelegte Paprikaschoten, die Peter Piper gepflückt hat";
cout << "String 5: " << s5 << endl;
cout << "String 6: " << s6 << endl;
if (checkAnagramme (s5, s6))
{
cout << "Ja, die beiden Strings sind Anagramme voneinander" << endl;
}
anders
{
cout << "Nein, die beiden Strings sind keine Anagramme voneinander" << endl;
}
string s7 = "Sie verkauft Muscheln an der Küste";
string s8 = "Muscheln an der Küste";
cout << "String 7: " << s7 << endl;
cout << "String 8: " << s8 << endl;
if (checkAnagramme (s7, s8))
{
cout << "Ja, die beiden Strings sind Anagramme voneinander" << endl;
}
anders
{
cout << "Nein, die beiden Strings sind keine Anagramme voneinander" << endl;
}
Zeichenfolge s9 = "kreativ";
Zeichenfolge s10 = "reaktiv";
cout << "String 9: " << s9 << endl;
cout << "String 10: " << s10 << endl;
if (checkAnagramme (s9, s10))
{
cout << "Ja, die beiden Strings sind Anagramme voneinander" << endl;
}
anders
{
cout << "Nein, die beiden Strings sind keine Anagramme voneinander" << endl;
}
0 zurückgeben;
}
Ausgabe:
String 1: zuhören
Zeichenfolge 2: stumm
Ja, die beiden Strings sind Anagramme voneinander
String 3: Willkommen bei MUO
String 4: MUO zur Begrüßung
Ja, die beiden Strings sind Anagramme voneinander
String 5: Peter Piper pflückte ein Päckchen eingelegte Paprika
Saite 6: Ein Päckchen eingelegte Paprikaschoten, die Peter Piper gepflückt hat
Nein, die beiden Strings sind keine Anagramme voneinander
String 7: Sie verkauft Muscheln an der Küste
String 8: Muscheln am Meer sea
Nein, die beiden Strings sind keine Anagramme voneinander
Zeichenfolge 9: kreativ
Zeichenfolge 10: reaktiv
Ja, die beiden Strings sind Anagramme voneinander
Verwandt: So zählen Sie die Vorkommen eines bestimmten Zeichens in einer Zeichenfolge
Python-Programm, um zu überprüfen, ob zwei Strings Anagramme voneinander sind
Unten ist das Python-Programm, um zu überprüfen, ob zwei Strings Anagramme voneinander sind oder nicht:
def checkAnagramme (s1, s2):
Größe1 = Linse (s1)
Größe2 = Linse (s2)
# Wenn die Länge beider Strings nicht gleich ist,
# bedeutet, dass sie keine Anagramme voneinander sein können.
# Rückgabe also false.
wenn Größe1 != Größe2:
zurück 0
s1 = sortiert (s1)
s2 = sortiert (s2)
für i im Bereich (0, Größe1):
wenn s1[i] != s2[i]:
falsch zurückgeben
true zurückgeben
s1 = "hören"
s2 = "still"
print("String 1:", s1)
print("String 2:", s2)
if (checkAnagramme (s1, s2)):
print("Ja, die beiden Strings sind Anagramme voneinander")
anders:
print("Nein, die beiden Strings sind keine Anagramme voneinander")
s3 = "Willkommen bei MUO"
s4 = "MUO zur Begrüßung"
print("String 3:", s3)
print("String 4:", s4)
if (checkAnagramme (s3, s4)):
print("Ja, die beiden Strings sind Anagramme voneinander")
anders:
print("Nein, die beiden Strings sind keine Anagramme voneinander")
s5 = "Peter Piper hat ein Päckchen eingelegte Paprika gepflückt"
s6 = "Ein Päckchen eingelegte Paprika, die Peter Piper gepflückt hat"
print("String 5:", s5)
print("String 6:", s6)
if (checkAnagrams (s5, s6)):
print("Ja, die beiden Strings sind Anagramme voneinander")
anders:
print("Nein, die beiden Strings sind keine Anagramme voneinander")
s7 = "Sie verkauft Muscheln an der Küste"
s8 = "Muscheln am Meer"
print("String 7:", s7)
print("String 8:", s8)
if (checkAnagramme (s7, s8)):
print("Ja, die beiden Strings sind Anagramme voneinander")
anders:
print("Nein, die beiden Strings sind keine Anagramme voneinander")
s9 = "kreativ"
s10 = "reaktiv"
print("String 9:", s9)
print("String 10:", s10)
if (checkAnagramme (s9, s10)):
print("Ja, die beiden Strings sind Anagramme voneinander")
anders:
print("Nein, die beiden Strings sind keine Anagramme voneinander")
Ausgabe:
String 1: zuhören
Zeichenfolge 2: stumm
Ja, die beiden Strings sind Anagramme voneinander
String 3: Willkommen bei MUO
String 4: MUO zur Begrüßung
Ja, die beiden Strings sind Anagramme voneinander
String 5: Peter Piper pflückte ein Päckchen eingelegte Paprika
Saite 6: Ein Päckchen eingelegte Paprikaschoten, die Peter Piper gepflückt hat
Nein, die beiden Strings sind keine Anagramme voneinander
String 7: Sie verkauft Muscheln an der Küste
String 8: Muscheln am Meer sea
Nein, die beiden Strings sind keine Anagramme voneinander
Zeichenfolge 9: kreativ
Zeichenfolge 10: reaktiv
Ja, die beiden Strings sind Anagramme voneinander
Verwandt: So finden Sie Vokale, Konsonanten, Ziffern und Sonderzeichen in einer Zeichenfolge
Überprüfen Sie, ob zwei Strings in JavaScript Anagramme voneinander sind
Unten ist das JavaScript-Programm, um zu überprüfen, ob zwei Strings Anagramme voneinander sind oder nicht:
FunktionsprüfungAnagramme (s1, s2) {
sei Größe1 = s1.Länge;
sei Größe2 = s2.Länge;
// Wenn die Länge beider Strings nicht gleich ist,
// Das bedeutet, dass sie keine Anagramme voneinander sein können.
// Also false zurückgeben.
if (Größe1 != Größe2)
{
falsch zurückgeben;
}
s1.sort();
s2.sort();
für (lassen Sie i = 0; ich < Größe1; ich++)
{
wenn (s1[i] != s2[i])
{
falsch zurückgeben;
}
}
true zurückgeben;
}
var s1 = "hören";
var s2 = "still";
document.write("Zeichenfolge 1: " + s1 + "
");
document.write("String 2: " + s2 + "
");
if (checkAnagrams (s1.split(""), s2.split(""))) {
document.write("Ja, die beiden Strings sind Anagramme voneinander" + "
");
} anders {
document.write("Nein, die beiden Strings sind keine Anagramme voneinander" + "
");
}
var s3 = "Willkommen bei MUO";
var s4 = "MUO zur Begrüßung";
document.write("String 3: " + s3 + "
");
document.write("String 4: " + s4 + "
");
if (checkAnagrams (s3.split(""), s4.split(""))) {
document.write("Ja, die beiden Strings sind Anagramme voneinander" + "
");
} anders {
document.write("Nein, die beiden Strings sind keine Anagramme voneinander" + "
");
}
var s5 = "Peter Piper pflückte ein Päckchen eingelegte Paprika";
var s6 = "Ein Päckchen eingelegte Paprika, die Peter Piper gepflückt hat";
document.write("String 5: " + s5 + "
");
document.write("String 6: " + s6 + "
");
if (checkAnagrams (s5.split(""), s6.split(""))) {
document.write("Ja, die beiden Strings sind Anagramme voneinander" + "
");
} anders {
document.write("Nein, die beiden Strings sind keine Anagramme voneinander" + "
");
}
var s7 = "Sie verkauft Muscheln an der Küste";
var s8 = "Muscheln an der Küste";
document.write("String 7: " + s7 + "
");
document.write("String 8: " + s8 + "
");
if (checkAnagrams (s7.split(""), s8.split(""))) {
document.write("Ja, die beiden Strings sind Anagramme voneinander" + "
");
} anders {
document.write("Nein, die beiden Strings sind keine Anagramme voneinander" + "
");
}
var s9 = "kreativ";
var s10 = "reaktiv";
document.write("String 9: " + s9 + "
");
document.write("String 10: " + s10 + "
");
if (checkAnagrams (s9.split(""), s10.split(""))) {
document.write("Ja, die beiden Strings sind Anagramme voneinander" + "
");
} anders {
document.write("Nein, die beiden Strings sind keine Anagramme voneinander" + "
");
}
Ausgabe:
String 1: zuhören
Zeichenfolge 2: stumm
Ja, die beiden Strings sind Anagramme voneinander
String 3: Willkommen bei MUO
String 4: MUO zur Begrüßung
Ja, die beiden Strings sind Anagramme voneinander
String 5: Peter Piper pflückte ein Päckchen eingelegte Paprika
Saite 6: Ein Päckchen eingelegte Paprikaschoten, die Peter Piper gepflückt hat
Nein, die beiden Strings sind keine Anagramme voneinander
String 7: Sie verkauft Muscheln an der Küste
String 8: Muscheln am Meer sea
Nein, die beiden Strings sind keine Anagramme voneinander
Zeichenfolge 9: kreativ
Zeichenfolge 10: reaktiv
Ja, die beiden Strings sind Anagramme voneinander
Verwandt: Wie finden Sie den ASCII-Wert eines Zeichens?
Verwenden Sie die richtigen Ressourcen, um das Programmieren zu lernen
Wenn Sie Ihre Programmierfähigkeiten festigen möchten, ist es wichtig, neue Konzepte zu erlernen und Zeit damit zu verbringen, sie zu verwenden. Eine Möglichkeit, dies zu tun, sind Programmier-Apps, mit denen Sie verschiedene Programmierkonzepte erlernen und gleichzeitig Spaß haben.
Möchten Sie Ihre Programmierkenntnisse auffrischen? Diese Apps und Websites helfen Ihnen, das Programmieren in Ihrem eigenen Tempo zu lernen.
Weiter lesen
- Programmierung
- JavaScript
- Python
- C-Programmierung
Yuvraj studiert Informatik an der University of Delhi, Indien. Seine Leidenschaft gilt der Full-Stack-Webentwicklung. Wenn er nicht gerade schreibt, erforscht er die Tiefe verschiedener Technologien.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren