Angenommen, ich habe ein leeres Trie-T, und dann mache ich T.insert ("Hallo"). Wenn ich T.find ("Hölle") mache, soll das dann wahr oder falsch sein?Sollte die Suche nach einem Teilstring eines Schlüssels in einem Trie True sein?
0
A
Antwort
1
Es sollte alle teilweise Übereinstimmungen zurückgeben, so im Falle Sie sprechen sollte {"hello"}
zurückkehren, wenn es keine Übereinstimmung hätte es normalerweise erwarten eine leere Menge sein zurückgegeben oder null
0
Wenn Sie ein Wort speichern, beenden Sie normalerweise mit einem Knoten, der ein Zeichen wie '*' verwendet.
Dann implementieren Sie eine partielle Match-Methode, die wahr zurückgibt, wenn Ihr Trie einen passenden Pfad enthält.
Dann eine vollständige Übereinstimmung Methode implementieren, die wie
full_match(x): return partial_match(x + "*")
definiert ist, warum sollte es 'true' zurückkehren? – mangusta
Ich würde es nicht erwarten. Wenn Sie dieses Verhalten benötigen, möchten Sie wahrscheinlich einen [Suffixbaum] (https://en.wikipedia.org/wiki/Suffix_tree) oder einen verallgemeinerten Suffixbaum. –