So überprüfen Sie, ob zwei Strings Anagramme voneinander sind

So überprüfen Sie, ob zwei Strings Anagramme voneinander sind

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:





  1. Vergleichen Sie die Länge beider Strings.
  2. 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.
  3. Wenn die Länge beider Strings gleich ist, fahren Sie fort.
  4. Sortieren Sie beide Zeichenfolgen.
  5. Vergleichen Sie beide sortierten Strings.
  6. Wenn beide sortierten Strings gleich sind, bedeutet dies, dass sie Anagramme voneinander sind. Geben Sie also true zurück.
  7. 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:





#include
using namespace std;
bool checkAnagrams(string s1, string s2)
{
int size1 = s1.length();
int size2 = s2.length();
// If the length of both strings are not the same,
// it means they can't be anagrams of each other.
// Thus, return false.
if (size1 != size2)
{
return false;
}
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
for (int i = 0; i {
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}
int main()
{
string s1 = 'listen';
string s2 = 'silent';
cout << 'String 1: ' << s1 << endl;
cout << 'String 2: ' << s2 << endl;
if(checkAnagrams(s1, s2))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s3 = 'Welcome to MUO';
string s4 = 'MUO to Welcome';
cout << 'String 3: ' << s3 << endl;
cout << 'String 4: ' << s4 << endl;
if(checkAnagrams(s3, s4))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s5 = 'Peter Piper picked a peck of pickled peppers';
string s6 = 'A peck of pickled peppers Peter Piper picked';
cout << 'String 5: ' << s5 << endl;
cout << 'String 6: ' << s6 << endl;
if(checkAnagrams(s5, s6))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s7 = 'She sells seashells by the seashore';
string s8 = 'seashells by the seashore';
cout << 'String 7: ' << s7 << endl;
cout << 'String 8: ' << s8 << endl;
if(checkAnagrams(s7, s8))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s9 = 'creative';
string s10 = 'reactive';
cout << 'String 9: ' << s9 << endl;
cout << 'String 10: ' << s10 << endl;
if(checkAnagrams(s9, s10))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
return 0;
}

Ausgabe:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Verwandte: 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 checkAnagrams(s1, s2):
size1 = len(s1)
size2 = len(s2)
# If the length of both strings are not the same,
# it means they can't be anagrams of each other.
# Thus, return false.
if size1 != size2:
return 0
s1 = sorted(s1)
s2 = sorted(s2)
for i in range(0, size1):
if s1[i] != s2[i]:
return False
return True

s1 = 'listen'
s2 = 'silent'
print('String 1: ', s1)
print('String 2: ', s2)
if(checkAnagrams(s1, s2)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s3 = 'Welcome to MUO'
s4 = 'MUO to Welcome'
print('String 3: ', s3)
print('String 4: ', s4)
if(checkAnagrams(s3, s4)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s5 = 'Peter Piper picked a peck of pickled peppers'
s6 = 'A peck of pickled peppers Peter Piper picked'
print('String 5: ', s5)
print('String 6: ', s6)
if(checkAnagrams(s5, s6)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s7 = 'She sells seashells by the seashore'
s8 = 'seashells by the seashore'
print('String 7: ', s7)
print('String 8: ', s8)
if(checkAnagrams(s7, s8)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s9 = 'creative'
s10 = 'reactive'
print('String 9: ', s9)
print('String 10: ', s10)
if(checkAnagrams(s9, s10)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')

Ausgabe:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Verwandte: 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:

function checkAnagrams(s1, s2) {
let size1 = s1.length;
let size2 = s2.length;
// If the length of both strings are not the same,
// it means they can't be anagrams of each other.
// Thus, return false.
if (size1 != size2)
{
return false;
}
s1.sort();
s2.sort();
for (let i = 0; i {
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}

var s1 = 'listen';
var s2 = 'silent';
document.write('String 1: ' + s1 + '
');
document.write('String 2: ' + s2 + '
');
if(checkAnagrams(s1.split(''), s2.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s3 = 'Welcome to MUO';
var s4 = 'MUO to Welcome';
document.write('String 3: ' + s3 + '
');
document.write('String 4: ' + s4 + '
');
if(checkAnagrams(s3.split(''), s4.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s5 = 'Peter Piper picked a peck of pickled peppers';
var s6 = 'A peck of pickled peppers Peter Piper picked';
document.write('String 5: ' + s5 + '
');
document.write('String 6: ' + s6 + '
');
if(checkAnagrams(s5.split(''), s6.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s7 = 'She sells seashells by the seashore';
var s8 = 'seashells by the seashore';
document.write('String 7: ' + s7 + '
');
document.write('String 8: ' + s8 + '
');
if(checkAnagrams(s7.split(''), s8.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s9 = 'creative';
var s10 = 'reactive';
document.write('String 9: ' + s9 + '
');
document.write('String 10: ' + s10 + '
');
if(checkAnagrams(s9.split(''), s10.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}

Ausgabe:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

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 lernen 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.

Teilen Teilen Tweet Email 8 Apps zum Programmieren lernen für den Internationalen Tag der Programmierer

Möchten Sie Ihre Programmierkenntnisse auffrischen? Diese Apps und Websites helfen Ihnen, das Programmieren in Ihrem eigenen Tempo zu lernen.

So laden Sie alle Fotos aus der Samsung Cloud herunter
Weiter lesen Verwandte Themen
  • Programmierung
  • JavaScript
  • Python
  • C-Programmierung
Über den Autor Yuvraj Chandra(60 veröffentlichte Artikel)

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.

Mehr von Yuvraj Chandra

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren