Here's an implementation of Aho-Corasick algorithm in Rust:
main.rs3607 chars121 lines
The above implementation uses a simple struct
to represent each node in the trie. The AhoCorasick
struct contains the trie
, which is a vector of these nodes.
To use the algorithm, you can create an instance of AhoCorasick
, add words to it using the add_word
method, and then call the build_failure_links
method to build the failure links between nodes.
Once the failure links are built, you can find all occurrences of the words in a given text using the find_words
method. This method returns a vector of tuples containing the starting index and the matched word.
gistlibby LogSnag