diff --git a/alib2algo/src/string/properties/PeriodicPrefix.h b/alib2algo/src/string/properties/PeriodicPrefix.h index c1612c95ea9f6f5e299f46aa443008d197a19f95..85d252dc312d32abf2cedce9a6103a3cdfd84160 100644 --- a/alib2algo/src/string/properties/PeriodicPrefix.h +++ b/alib2algo/src/string/properties/PeriodicPrefix.h @@ -22,9 +22,9 @@ public: }; namespace { - // return period if pattern is periodic, else -1 + // return period if pattern is periodic, else length of x template <class SymbolType> - ssize_t hasShortPeriod ( const ext::vector<SymbolType>& x , size_t prefixLen ) { + size_t hasShortPeriod ( const ext::vector<SymbolType>& x , size_t prefixLen ) { for ( size_t per = 1 ; per <= prefixLen/2 ; ++ per ){ bool hasPer = true ; for ( size_t i = per ; i < prefixLen ; ++ i ) { @@ -32,7 +32,7 @@ namespace { } if ( hasPer ) return per ; } - return -1 ; + return x.size ( ) ; } } @@ -43,7 +43,7 @@ ext::pair<ssize_t, ssize_t > PeriodicPrefix::construct(const string::LinearStrin ssize_t maxlen = -1 , maxper = -1 ; for ( size_t i = 1 ; i <= x.size() ; ++ i ) { auto per = hasShortPeriod(x , i) ; - if ( per != -1 ) { + if ( per != x.size ( ) ) { maxlen = i ; maxper = per ; }