[−][src]Struct contest_algorithms::string_proc::Matcher
Single-pattern matching with the Knuth-Morris-Pratt algorithm
Fields
pattern: &'a [C]
The string pattern to search for.
fail: Vec<usize>
KMP match failure automaton. fail[i] is the length of the longest proper prefix-suffix of pattern[0..=i].
Implementations
impl<'a, C: Eq> Matcher<'a, C>
[src]
pub fn new(pattern: &'a [C]) -> Self
[src]
Precomputes the automaton that allows linear-time string matching.
Example
use contest_algorithms::string_proc::Matcher; let utf8_string = "hello"; let match_from_byte_literal = Matcher::new(b"hello"); let match_from_bytes = Matcher::new(utf8_string.as_bytes()); let vec_char: Vec<char> = utf8_string.chars().collect(); let match_from_chars = Matcher::new(&vec_char); let vec_int = vec![4, -3, 1]; let match_from_ints = Matcher::new(&vec_int);
Panics
Panics if pattern is empty.
pub fn kmp_match(&self, text: &[C]) -> Vec<usize>
[src]
KMP algorithm, sets match_lens[i] = length of longest prefix of pattern matching a suffix of text[0..=i].
Auto Trait Implementations
impl<'a, C> RefUnwindSafe for Matcher<'a, C> where
C: RefUnwindSafe,
C: RefUnwindSafe,
impl<'a, C> Send for Matcher<'a, C> where
C: Sync,
C: Sync,
impl<'a, C> Sync for Matcher<'a, C> where
C: Sync,
C: Sync,
impl<'a, C> Unpin for Matcher<'a, C>
impl<'a, C> UnwindSafe for Matcher<'a, C> where
C: RefUnwindSafe,
C: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,