Python-Anagramm-Checker

Überprüfen Sie, ob zwei Zeichenfolgen Anagramme sind, indem Sie ihre Zeichenzusammensetzungen in Python vergleichen.

Versuchen Sie es im Editor

Übersicht

Zwei Zeichenfolgen sind Anagramme, wenn sie dieselben Zeichen in identischer Häufigkeit, jedoch in unterschiedlicher Reihenfolge (z. B. „zuhören“ und „still“) enthalten.

Eine elegante Möglichkeit, nach Anagrammen zu suchen, besteht darin, die Zeichenfolgen zu bereinigen (Leerzeichen und Kleinbuchstaben zu entfernen), ihre Zeichen zu sortieren und zu überprüfen, ob die sortierten Listen identisch sind.

Dieser Sortieransatz wird in O(k log k) Zeit ausgeführt, wobei k die Stringlänge ist, was für kurze Textprüfungen optimal ist.

Code- und Ausführungsausgabe

Überprüfung von Wortpaaren auf Anagrammstatus durch Buchstabensortierung.

def is_anagram(str1, str2):
    s1 = sorted(str1.lower().replace(" ", ""))
    s2 = sorted(str2.lower().replace(" ", ""))
    return s1 == s2

word1, word2 = "listen", "silent"
print(f"Are '{word1}' and '{word2}' anagrams? {is_anagram(word1, word2)}")

word3, word4 = "hello", "world"
print(f"Are '{word3}' and '{word4}' anagrams? {is_anagram(word3, word4)}")
Terminal-Ausgabe
Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? False

Schrittweise Umsetzung

  • Textanalyse- und Sprachvergleichsmaschinen
  • String-Puzzle-Design und Validierungssysteme
  • Technische Aufgaben zur Codierung von Interviews

Häufig gestellte Fragen

Gibt es eine Möglichkeit, dies in O(n) linearer Zeit zu lösen?

Ja! Anstatt zu sortieren, können Sie die Buchstabenhäufigkeit mithilfe einer Hash-Map oder Pythons „collections.Counter“ zählen und die resultierenden Häufigkeitskarten vergleichen.

Verwandte Themen