Skip to content
Snippets Groups Projects

Jirakjan bp rebase

Merged Jan Trávníček requested to merge jirakjan-bp-rebase into master
7 files
+ 27
7
Compare changes
  • Side-by-side
  • Inline
Files
7
@@ -46,8 +46,11 @@ namespace stringology {
size_t n = text.size(), m = pat.size();
size_t repSize, p , q ;
measurements::start ( "Preprocess", measurements::Type::PREPROCESS );
std::tie( repSize , p , q ) = string::properties::Repetition::construct(pattern) ;
measurements::end ( );
measurements::start ( "Algorithm", measurements::Type::ALGORITHM );
// for repSize == 0 or 1 use naive solution
if ( repSize == 0 || repSize == 1 ) {
for ( size_t i = 0 ; i <= n - m ; ++ i ) {
@@ -55,6 +58,7 @@ namespace stringology {
while ( j < m && text[i + j ] == pat[j] ) ++ j ;
if ( j == m ) occ.insert(i) ;
}
measurements::end();
return occ ;
}
@@ -72,7 +76,7 @@ namespace stringology {
for ( size_t j = i - repSize / 2 ; j <= n - m ; ++ j ) {
if ( std::equal( pat.begin() , pat.end() , text.begin() + j ) ) occ.insert(j) ;
}
measurements::end();
return occ ;
}
Loading