aboutsummaryrefslogblamecommitdiffstats
path: root/library/cpp/deprecated/kmp/kmp.cpp
blob: d02074c94ae728a3e99ac506733b3925dcf40730 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                
                                    





                                                                          
                                                





                                           
                                                                                  
                             
#include "kmp.h"

#include <util/generic/yexception.h>

TKMPMatcher::TKMPMatcher(const char* patternBegin, const char* patternEnd)
    : Pattern(patternBegin, patternEnd)
{
    ComputePrefixFunction();
}

TKMPMatcher::TKMPMatcher(const TString& pattern)
    : Pattern(pattern)
{
    ComputePrefixFunction();
}

void TKMPMatcher::ComputePrefixFunction() {
    ssize_t* pf;
    ::ComputePrefixFunction(Pattern.data(), Pattern.data() + Pattern.size(), &pf);
    PrefixFunction.Reset(pf);
}