最长重复子串(可重叠)

来源:互联网 发布:nginx header传递吗 编辑:程序博客网 时间:2024/06/17 11:47
void getNextArray(vector<int>& next, const string& s) { next.resize(s.size() + 1); // 多加一位next[0] = -1;int k = -1, i = 0;while ( i < s.size()) {if (k == -1 || s[i] == s[k] )next[++i] = ++k;elsek = next[k];}}int main() {// 利用KMP算法求解,时间复杂度O(n*n)string str = "ask not what your country can do for you,but..";vector<int> next;int ret = 0;for (int i = 0; i < str.size(); ++i){getNextArray(next, str.substr(i));ret = max(ret, *max_element(next.begin(), next.end()));}cout << ret << endl;return 0;}

0 0
原创粉丝点击