Mit Python prüfen, ob zwei Zeichenketten Anagramme sind
- Überprüfen Sie, ob zwei Strings Anagramme sind, indem Sie die Sortierung in Python verwenden
- Überprüfen Sie, ob zwei Strings Anagramme sind, indem Sie Häufigkeitswörterbücher in Python verwenden
Ein Anagramm ist ein Wort, das durch Neuanordnung der Buchstaben eines anderen Wortes gebildet wird.
Zum Beispiel sind race
und care
, listen
und silent
, fried
und fired
, knee
und keen
einige Anagrammpaare. dad
und bad
, apple
und mango
, hello
und world
sind keine Anagramme.
Mit Programmiersprachen können wir schnell überprüfen, ob zwei Strings Anagramme voneinander sind oder nicht.
In diesem Artikel erfahren Sie, wie Sie mithilfe von Python überprüfen können, ob zwei Zeichenketten Anagramme sind oder nicht. Wir werden über einige Ansätze dafür sprechen.
Überprüfen Sie, ob zwei Strings Anagramme sind, indem Sie die Sortierung in Python verwenden
Um zu überprüfen, ob zwei Strings Anagramme sind oder nicht, können wir die beiden Strings sortieren und prüfen, ob sie gleich sind oder nicht. Siehe den folgenden Code für dasselbe.
Die Zeitkomplexität des Codes ist wegen der Sortierung O(nlogn)
, und die Raumkomplexität ist O(1)
, weil wir keinen Wert speichern.
def check_anagram(a, b):
if a is None or b is None or len(a) != len(b):
return "Not Anagram"
return "Anagram" if sorted(a) == sorted(b) else "Not Anagram"
print(check_anagram("keen", "knee"))
print(check_anagram("race", "care"))
print(check_anagram("fried", "fired"))
print(check_anagram("apple", "paddle"))
print(check_anagram("first", "second"))
print(check_anagram(None, "second"))
print(check_anagram("first", None))
print(check_anagram(None, None))
Ausgabe:
Anagram
Anagram
Anagram
Not Anagram
Not Anagram
Not Anagram
Not Anagram
Not Anagram
Überprüfen Sie, ob zwei Strings Anagramme sind, indem Sie Häufigkeitswörterbücher in Python verwenden
Um zu überprüfen, ob zwei Strings Anagramme sind, können wir die Anzahl der in beiden Strings vorhandenen Zeichen beibehalten und die Anzahl vergleichen. Wenn sie gleich wären, bedeutet dies, dass die beiden Zeichenketten Anagramme sind. Ansonsten sind sie es nicht.
Siehe den folgenden Code für dasselbe.
Die Zeitkomplexität der folgenden Lösung ist O(n)
, da wir über die beiden Strings iterieren. Der durchschnittliche Zeitaufwand für das Hinzufügen eines Elements zum Dictionary und das Abrufen eines Elements beträgt O(1)
.
Außerdem ist der Vergleich zweier Wörterbücher mit der gleichen Anzahl von Schlüsseln O(n)
. Und die Raumkomplexität ist O(n)
, weil wir zwei Wörterbücher pflegen, und hinter den Kulissen verwenden Wörterbücher Arrays, um Schlüssel und Werte zu speichern.
def check_anagram(a, b):
if a is None or b is None or len(a) != len(b):
return "Not Anagram"
counts_a = {}
counts_b = {}
for x in a:
if x not in counts_a.keys():
counts_a[x] = 1
else:
counts_a[x] += 1
for x in b:
if x not in counts_b.keys():
counts_b[x] = 1
else:
counts_b[x] += 1
return "Anagram" if counts_a == counts_b else "Not Anagram"
print(check_anagram("keen", "knee"))
print(check_anagram("race", "care"))
print(check_anagram("fried", "fired"))
print(check_anagram("apple", "paddle"))
print(check_anagram("first", "second"))
print(check_anagram(None, "second"))
print(check_anagram("first", None))
print(check_anagram(None, None))
Ausgabe:
Anagram
Anagram
Anagram
Not Anagram
Not Anagram
Not Anagram
Not Anagram
Not Anagram
Verwandter Artikel - Python String
- Entfernen Kommas aus String in Python
- Wie man prüft, ob eine Zeichenkette auf pythonische Weise leer ist
- Konvertieren einer Zeichenkette in einen Variablennamen in Python
- Wie man Leerzeichen in einem String in Python entfernt
- Wie man in Python Zahlen aus einer Zeichenkette extrahiert
- Wie man in Python String in datetime konvertiert