最长回文串
来源:互联网 发布:电脑像素画软件 编辑:程序博客网 时间:2024/05/16 05:14
ABCBADEFEDAG
此算法最直观的方法是遍历法,复杂度为O(n^2)。
不过只需遍历一次,就可得到此串最长回文串,复杂度为O(n)。其算法具体如下:
初始每个字符为中心的最大回文串长度都是1,计为p[n] = 1,暂不考虑邻接对称的情况。对于考虑邻接对称的情况,应对策略是,在串中依次插入一个空格,求取新串回文串。
#include<iostream>using namespace std;int huiwen(char *s){int maxn = 0, maxi = 0;int mid = 1;int n = strlen(s);int *p = new int[n];for (int i = 0; i < n; i++){p[i] = 1;}for (int i = 2; i<n; i++){if (2 * mid - i >= 0 && s[i] == s[2 * mid - i]){p[mid]++;if (p[mid>maxn]){maxn = p[mid];maxi = mid;}}else {mid = i;}}cout << maxn << " " << maxi << endl;delete[]p;return 0;}void main(){char s[] = "ABCBADEFEDAG";huiwen(s);}
0 0
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文串模版
- 最长回文子串
- 最长回文子串
- KMP算法详解
- 20140302培训感悟
- DataInputStream 和DataOutputStream用于操作Java的基本数据类型
- Big-endian and little-endian
- PS教程:一分钟搞定 超简单PS皮肤美白方法
- 最长回文串
- 黑马程序员-第十六天( Map集合)
- SpringMVC入门教程 附jar包依赖关系
- 九度oj 题目1023:EXCEL排序 【ZJU2007考研机试题4】
- STL-map--what are you talking about
- volatile
- InputStreamReader和OutputStreamWriter字符编码转换
- Hadoop平台优化综述
- JAVA中的synchronized详解