Python-Anagramm-Checker
Überprüfen Sie, ob zwei Zeichenfolgen Anagramme sind, indem Sie ihre Zeichenzusammensetzungen in Python vergleichen.
Ü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)}")Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? FalseSchrittweise 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.