2016-07-20 22 views
0

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

definiert ist, warum sollte es 'true' zurückkehren? – mangusta

+0

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. –

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 + "*")