docs.rs failed to build general-sam-0.4.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
general-sam-1.0.3
general-sam
A general suffix automaton implementation in Rust.
Python bindings and some utilities are also available.
Please check out general-sam-py.
flowchart LR
init((ε))
a((a))
b((b))
ab((ab))
bc(((bc)))
abc((abc))
abcb((abcb))
abcbc(((abcbc)))
init -- a --> a
init -- b --> b
a -- b --> ab
b -- c --> bc
init -- c --> bc
ab -- c --> abc
bc -- b --> abcb
abc -- b --> abcb
abcb -- c --> abcbc
The suffix automaton of abcbc.
Examples
use GeneralSAM;
let sam = construct_from_bytes;
// => GeneralSAM<u8>
// "cbc" is a suffix of "abcbc"
assert!;
// "bcb" is not a suffix of "abcbc"
assert!;
use GeneralSAM;
let sam = construct_from_chars;
// => GeneralSAM<char>
let state = sam.get_root_state;
// "b" is not a suffix but at least a substring of "abcbc"
let state = state.feed_chars;
assert!;
// "bc" is a suffix of "abcbc"
let state = state.feed_chars;
assert!;
// "bcbc" is a suffix of "abcbc"
let state = state.feed_chars;
assert!;
// "bcbcbc" is not a substring, much less a suffix of "abcbc"
let state = state.feed_chars;
assert!;
use ;
let mut trie = default;
trie.insert_iter;
trie.insert_iter;
let sam: = construct_from_trie;
assert!;
assert!;
assert!;
assert!;
assert!;
assert!;
assert!;
References
- Mehryar Mohri, Pedro Moreno, Eugene Weinstein. General suffix automaton construction algorithm and space bounds.
- 刘研绎《后缀自动机在字典树上的拓展》
- 广义后缀自动机 - OI Wiki
License
- © 2023 Chielo Newctle <ChieloNewctle@gmail.com>
- © 2023 ModelTC Team
This project is licensed under either of
at your option.
The SPDX license identifier for this project is MIT OR Apache-2.0.