最长回文串manacher算法模板
来源:互联网 发布:论坛网站排名数据库 编辑:程序博客网 时间:2024/06/05 22:49
#include <iostream>#include <string>using namespace std;string preProvess(string s){int n = s.size();if (n == 0)return "^$";string ret = "^";for (int i = 0; i < n; ++i)ret += "#" + s.substr(i, 1);ret += "#$";return ret;}int longgest_palindrome(string s){string T = preProvess(s);int n = T.size();int* p = new int[n];int C = 0, R = 0;for (int i = 1; i < n - 1; ++i){int i_mirror = 2 * C - i;p[i] = (R > i) ? min(R - i, p[i_mirror]) : 0;while (T[i + 1 + p[i]] == T[i - 1 - p[i]])p[i]++;if (i + p[i] > R){C = i;R = i + p[i];}}int max_len = 0;int centerIndex = 0;for (int i = 1; i < n - 1; ++i){if (p[i] > max_len){max_len = p[i];centerIndex = i;}}delete[] p;return max_len;}int main(){string tmp;cin >> tmp;cout << longgest_palindrome(tmp) << endl;return 0;}
0 0
- 最长回文串manacher算法模板
- 【模板】Manacher 算法 最长回文子串
- Manacher 模板 最长回文串
- hihocoder 1032 最长回文子串 (Manacher算法 详解+模板)
- 求最长回文子串 manacher算法 模板
- Manacher算法求最长回文子串模板
- HDU 3068 最长回文(manacher算法模板)
- HDU 3064 最长回文 manacher算法模板
- Manacher算法(最长回文串)
- {模板}Manacher最长回文子串
- 最长回文串——Manacher模板
- Manacher最长回文子串(模板)
- MANACHER最长回文算法
- Manacher算法,O(n)回文子串算法 以及模板题HDU3068最长回文串
- hdu 3068 最长回文(最长回文子串 manacher算法)
- 【最长回文子串】HDU3068最长回文【Manacher算法】
- Manacher算法求最长回文子串
- Manacher算法求最长回文子串
- jQery.form.js中文API【整理】
- php中递归函数
- Android应用程序打包时,出现错误:"XXX" is not translated in "af" , "am" , "ar" ....
- vector作二维数组应用
- fresco解析(2)之View
- 最长回文串manacher算法模板
- Code Recyclebin Contact me QQ:149906878 Write operations are not allowed in read-only mode (FlushMo
- poj3009
- 延迟X秒之后执行某个方法
- 51nod 1089 最长回文字串V2(Manacher算法)
- 电源管理事件
- 小结选择器--CSS、JavaScript、JQuery
- 机器学习经典算法logistic回归
- POJ1964/UVALive 3029 -City Game -求最大子矩形-(暴力枚举/dp)