华为机试——求一个字符串中的最大回文子串

来源:互联网 发布:for数组去重 编辑:程序博客网 时间:2024/04/30 10:44

题目:求一个字符串中的最大回文子串

#include<iostream>#include<cstdio>#include<cctype>#include<cstring>using namespace std;const int MAXN=200;char outstr[MAXN],s[MAXN];int main(){    int i,j,k,m=0,max=0;    int start,end;    fgets(s,sizeof(s),stdin);    int length=strlen(s);    for(i=0;i<length;i++)        for(j=i;j<length;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;                start=i;                end=j;            }        }    for(int i=start;i<=end;i++)        outstr[m++]=s[i];    outstr[m]='\0';    cout<<"最大回文子串为:"<<outstr<<endl;    cout<<"长度:"<<max<<endl;}
0 0