Mit Python prüfen, ob zwei Zeichenketten Anagramme sind

Vaibhav Vaibhav 10 Oktober 2023
  1. Überprüfen Sie, ob zwei Strings Anagramme sind, indem Sie die Sortierung in Python verwenden
  2. Überprüfen Sie, ob zwei Strings Anagramme sind, indem Sie Häufigkeitswörterbücher in Python verwenden
Mit Python prüfen, ob zwei Zeichenketten Anagramme sind

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
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python String