2016-04-26から1日間の記事一覧
vector<int> Build(const string& s) { vector<int> fail(s.size() + 1); int j = -1; fail[0] = -1; for (int i = 0; i < s.size(); ++i) { while (j >= 0 && s[i] != s[j]) j = fail[j]; ++j; fail[i + 1] = j; } return fail; } void Match(const string& needle, c</int></int>…