# include <iostream>
# include <string>
{
const std::string text = "ababaabababa";
const std::string pattern = "ababa";
const auto matches = kmp_search(text, pattern);
const auto pi = kmp_prefix_function(pattern);
std::cout << "KMP Example\n";
std::cout << "Text : " << text << "\n";
std::cout << "Pattern: " << pattern << "\n\n";
std::cout << "Prefix function: ";
for (size_t i = 0; i < pi.size(); ++i)
std::cout << pi[i] << (i + 1 == pi.size() ? '\n' : ' ');
std::cout << "Matches at positions: ";
for (size_t i = 0; i < matches.size(); ++i)
std::cout << matches[i] << (i + 1 == matches.size() ? '\n' : ' ');
return 0;
}
Classical pattern searching algorithms over strings.
Main namespace for Aleph-w library functions.