最长回文子串算法入门经典
2015-04-15 20:27
369 查看
#include<stdio.h> #include<ctype.h> #include<iostream> #include<math.h> #include<string.h> #define MAXN 5000 + 10 char buf[MAXN],s[MAXN]; int p[MAXN]; int main() { int n,m = 0,max = 0,x,y; int i,j; fgets(buf,sizeof(s),stdin); n = strlen(buf); for(i = 0;i < len;i++) //把字符串都改成大写字母并把其他符号去掉 { if(isalpha(buf[i])) { p[m] = i; s[m++] = toupper(buf[i]); } } for(i = 0;i < m;i++) //遍历第i个字母 这个更快 { for(j = 0;i - j >=0&&i + j < m;j++) //用于奇数字符个数 { if(s[i - j] != s[i + j])break; if(j * 2 > max){max = j * 2 + 1;x = p[i - j];y = p[i + j];} } for(i = 0;i - j >= 0&&i + j + 1< m;j++) //用于偶数 { if(s[i - j] != s[i + j +1])break; if(j * 2 > max){max = j * 2 + 2;x = p[i - j];y = p[i + j + 1];} } } for(i = x;i <= y;i++ { printf("%c",buf[i]); } printf("\n"); return 0; }
相关文章推荐
- 算法竞赛入门经典 3.3 最长回文子串
- 算法竞赛入门经典 3.3 最长回文子串
- 2018/3/11 经典算法——最长回文子串
- 【LeetCode-面试算法经典-Java实现】【005-Longest Palindromic Substring(最长回文子串)】
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 算法竞赛入门经典-找出第一个回文子串
- 经典算法——最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 找工作知识储备---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 算法的经典问题,求最长回文子串,最长重复字串
- 笔试面试算法经典--最长回文子串
- ] 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 算法入门-最长回文子串(1)
- 经典算法——最长回文子串