最长回文字串

来源:互联网 发布:简述网络教学设计原则 编辑:程序博客网 时间:2024/05/16 04:28

最长回文字串

题意

输入一个字符串,求出其最长的回文字串

输入

输入包括字母、数字、标点符号、空格等。

输出

输出保持原样。

算法书上看到的,找了一下oj上的题,竟然没有,应该会有用。。。

#include<bits/stdc++.h>#define Max 5000+10using namespace std;char buf[Max],s[Max];int main(){    int n,m=0,max1=0;    int i,j,k;    fgets(buf,sizeof(s),stdin);   //读入字符串    n=strlen(buf);    for(i=0; i<n; i++)    {        if((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>max1)                    max1=j-i+1;       //若回文串可以再长一点就再长一点            }        }    }    printf("%d\n",max1);    return 0;}


0 0
原创粉丝点击