10namespace helper_array {
11std::vector<int> get_array(std::string& pattern) {
12 std::vector<int> failure(pattern.size() + 1);
14 for (
int i = 0, j = -1; i < pattern.size(); i++) {
15 while (j != -1 && pattern[j] != pattern[i]) {
32bool kmp(std::string pattern, std::string text) {
33 std::vector<int> failure = helper_array::get_array(pattern);
34 for (
int j = 0, k = 0; j < text.size(); j++) {
35 while (k != -1 && pattern[k] != text[j]) {
38 if (++k == pattern.size())