13#include <string/LinearString.h>
32 template <
class SymbolType >
37 template <
class SymbolType >
42 long int n = text.size(), m = pat.size();
51 while ( s <= n - m && i - delta >= 0 ) {
52 if ( pat[
i] != text[s +
i] ) s = s + 1;
55 while ( j < m && pat[j] == text[s + j] ) ++j;
56 if ( j == m ) occ.insert(s);
58 while ( h >= 0 && pat[h] != pat[
i] ) --h;
70 if ( pat[k] != text[s+k] ) ++ s;
73 while ( j < m && pat[j] == text[s+j]) ++j;
74 if ( j == m ) occ.insert(s);
Linear string.
Definition: LinearString.h:57
const ext::vector< SymbolType > & getContent() const &
Definition: LinearString.h:238
Definition: TailedSubstring.h:26
static ext::set< unsigned > match(const string::LinearString< SymbolType > &subject, const string::LinearString< SymbolType > &pattern)
Definition: TailedSubstring.h:38
int i
Definition: AllEpsilonClosure.h:118
void start(measurements::stealth_string name, measurements::Type type)
Definition: measurements.cpp:14
void end()
Definition: measurements.cpp:19
Definition: ArithmeticCompression.h:18