码迷,mamicode.com
首页 > 其他好文 > 详细

最长回文串

时间:2014-11-26 22:12:06      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   使用   sp   for   文件   

样例输入:Confuciiuss say:Madam,I‘m Adam;

样例输出:Madam,I‘m Adam

这个题我们首先要解决三个问题一个是大小写的问题一个是把符号忽略的问题  一个是输入字符串问题

首先是输入字符串问题  我推荐使用fgets(buf,sizeof,stdin),这个输入关键字不会使用非法内存,不想gets    gets会无限网字符串里面塞东西  导致会访问非法内存;

第二我们解决大小写问题 我们可以用ctype.h文件中isalpha来转换  if(isalpha(buf[i]))判断是否为字母 然后touppre[buf[i]]转换成小写的  这样就可以随意的判断是否为回文串了

下面看代码:

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define MAXN 5000+10
char buf[MAXN],s[MAXN];

int main()

{
    int n,m = 0,max = 0;
    int i,j,k;
    fgets(buf,sizeof(s),stdin);
    n = strlen(buf);
    for(i = 0;i < n;i++)
    {
        if(isalpha(buf[i])) s[m++] = toupper(buf[i]);
    }
    for(i = 0;i < m;i++)
    {
        for(j = i;j < m;j++)
        {
            int ok = 1;
            for(k = i;k <= j;k++)
                if(s[k]!=s[i+j-k])ok = 0;
            if(ok&&j-i+1 > max) max = j-i+1;
        }
    }
    printf("%d\n",max);
    return 0;
}

 

最长回文串

标签:style   blog   io   ar   color   使用   sp   for   文件   

原文地址:http://www.cnblogs.com/zhanyage110/p/4124986.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!