求最长回文字符串并原样输出
2011-06-30 09:38
190 查看
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define MAXN 5000+10 char buf[MAXN], s[MAXN]; int p[MAXN]; int main(void) { int n, m = 0, max = 0, x, y; int i, j; fgets(buf, sizeof(s), stdin); n = strlen(buf); for (i = 0; i < n; i++) { if (isalpha(buf[i])) { p[m] = i; s[m++] = toupper(buf[i]); } } for(i=0;i<m;i++){ for(j=0;i-j>=0&&i+j<m;j++){ if(s[i-j]!=s[i+j]) break; if(j*2+1>max){ max=j*2+1; x=p[i-j]; y=p[i+j]; } } for(j=0;i-j>=0&&i+j+1<=m;j++){ if(s[i-j]!=s[i+j+1]) break; if(j*2+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 EXIT_SUCCESS; }
相关文章推荐
- 输出任意字符串中最长的回文长度
- Palindromic Subsequence(最长回文字符串 输出路径)
- 原样输出最长回文子串
- C语言从一个字符串中,找到最长的回文,并输出
- 动态规划求解最长回文字符串
- 字符串 专题训练 · 最长回文子串之Manacher算法
- C语言 求一个字符串中最长回文子串的长度
- 求字符串中的最长回文子串
- C语言查询最长回文字符串
- 输出字符串中最长的单词
- 2014百度校园招聘笔试——求一个字符串的最长回文子串
- 给定一个字符串,输出最长的重复子串
- Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
- 刘汝佳 最长回文字符串(1)
- Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
- 判断一个字符串是否为回文,以及求一个字符串中最长回文串
- leetcode第五题—最长回文字符串
- Longest Palindromic Substring 最长回文字符串
- 字符串最长回文子串
- 【字符串】最长回文子串