首页 > 其他 > 详细

1040. Longest Symmetric String (25)

时间:2017-12-14 14:45:02      阅读:198      评论:0      收藏:0      [点我收藏+]

Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given "Is PAT&TAP symmetric?", the longest symmetric sub-string is "s PAT&TAP s", hence you must output 11.

Input Specification:

Each input file contains one test case which gives a non-empty string of length no more than 1000.

Output Specification:

For each test case, simply print the maximum length in a line.

Sample Input:
Is PAT&TAP symmetric?
Sample Output:
11



代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
char s[1001];
int len,c = 1;
int counts(int a,int b)
{
    int i;
    for(i = 0;a - i >= 0 && b + i < len;i ++)
    {
        if(s[a - i] != s[b + i])break;
    }
    return i * 2;
}
int main()
{
    gets(s);
    len = strlen(s);
    for(int i = 0;i < len;i ++)
    {
        if(i && s[i] == s[i - 1])
        {
            c = max(c,counts(i - 1,i));

        }
        if(i && i + 1 < len && s[i - 1] == s[i + 1])
        {
            c = max(c,counts(i - 1,i + 1) + 1);
        }
    }
    cout<<c;
}

 

1040. Longest Symmetric String (25)

原文:http://www.cnblogs.com/8023spz/p/8037458.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!