私はどこで単語を訂正したいのですか? 正しい単語と間違った単語[スペルミス]が設定されています。 トライにすべての単語を入力します。 私はすべての単語の正しいバージョンと正しくないバージョンの両方を持っています。単語間の関連性を持つトライ
今場合は、私は「」補正のため、
としての単語を取得する場合 - 私はtrie.ifトライでそれを検索するには、この言葉を持って、私はこの言葉の正しいバージョンでこの言葉を関連付けます。
解決方法: トライの間違った単語の最後のノードで正しいバージョン["a1"]を設定できます。それを "a1"に解決できます。
しかし、私はメモリの足のプリントを増加させる最後のノードに各単語の正しいバージョンを格納する必要があります。 私はすべての単語がtrie [正しい/間違っている]に読み込まれているので。 正しい単語と間違った単語の間に関連付けを行う方法はありますか?最後のノードに単語全体を値として再度保存する必要はありませんか? ポインタはありますか?
public class TrieNode<T> {
private Map<Character, TrieNode<T>> childs;
private boolean complete;
private T value;
....
}
親ノードへの参照の保存はどうですか?そうすれば、間違ったスペルから正しいスペルの最後のノードを指し、結果の文字列を逆の順序で復元することができます。 –
それは良い考えです。唯一のことはメモリの足のプリントを増やすかもしれないが、良いトリックです。 – user2426785