首页 > 学院 > 开发设计 > 正文

最长对称子串

2019-11-08 02:14:02
字体:
来源:转载
供稿:网友
最长对称子串   (25分)

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。

输入格式:

输入在一行中给出长度不超过1000的非空字符串。

输出格式:

在一行中输出最长对称子串的长度。

输入样例:

Is PAT&TAP symmetric?

输出样例:

11

#include <iostream>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <map>#include <algorithm>#include <vector>#include <string>#include <cstring>#include <sstream>using namespace std;char a[1005];int len;int main(){    gets(a);    len=strlen(a);    int ans=1;    for(int i=1;i<len-1;i++)    {        int p=i-1;        int q=i+1;        int tmp=1;        while(p>=0&&q<len)        {            if(a[p]==a[q])            {                p--;                q++;                tmp+=2;            }            else            {                break;            }        }        if(tmp>ans)        {            ans=tmp;        }    }    for(int i=0;i<len-1;i++)    {        int p=i;        int q=i+1;        int tmp=0;        while(p>=0&&q<len)        {            if(a[p]==a[q])            {                p--;                q++;                tmp+=2;            }            else            {                break;            }        }        if(tmp>ans)        {            ans=tmp;        }    }    PRintf("%d/n",ans);    return 0;}


上一篇:第五章 语句

下一篇:volatile的作用

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表