13#include <string/LinearString.h>
32 template <
class SymbolType >
37 template <
class SymbolType >
42 size_t n = text.size(), m = pat.size();
46 size_t gamma = 1 , delta = 1 ;
47 while ( delta < m && pat[m-1] != pat[m-1-delta]) ++ delta;
48 while ( gamma < m && pat[m-1] == pat[m-1-gamma]) ++ gamma;
55 if ( pat[m-1] != text[s+m-1] ) s += gamma;
58 while ( j >= 0 && pat[j] == text[s+j] ) -- j;
59 if ( j < 0 ) occ.insert(s);
Linear string.
Definition: LinearString.h:57
const ext::vector< SymbolType > & getContent() const &
Definition: LinearString.h:238
Definition: QuiteNaive.h:26
static ext::set< unsigned > match(const string::LinearString< SymbolType > &subject, const string::LinearString< SymbolType > &pattern)
Definition: QuiteNaive.h:38
void start(measurements::stealth_string name, measurements::Type type)
Definition: measurements.cpp:14
void end()
Definition: measurements.cpp:19
Definition: ArithmeticCompression.h:18