zoukankan      html  css  js  c++  java
  • L2-008. 最长对称子串

    L2-008. 最长对称子串

    时间限制
    100 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    陈越

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

    输入格式:

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

    输出格式:

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

    输入样例:
    Is PAT&TAP symmetric?
    
    输出样例:
    11
    
    #include<iostream>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int main()
    {
        char a[1005];
        gets(a);
        int l=strlen(a);
        int mm=1;//初始化为1,易错点
    
        for(int i=1;i<l;i++)
        {
            int j=i-1;
            int p=i;
            int k=i+1;
            int s=0;
            if(a[j]==a[k]&&j>=0&&k<l)//中心一个点,两边辐射
            {
                s=3;
                j--;k++;
                while(a[j]==a[k]&&j>=0&&k<l)
                {
                    s+=2;
                    j--;
                    k++;
                }
                mm=max(mm,s);
            }
            j=i-1;p=i;
            s=0;
            if(a[p]==a[j]&&j>=0&&p<l)//没有中心的情况
            {
                s=2;
                j--;p++;
                while(a[p]==a[j]&&j>=0&&p<l)
                {
                    s+=2;
                    j--;p++;
                }
                mm=max(mm,s);
            }
        }
        cout<<mm;
    }
  • 相关阅读:
    git分支合并
    php错误处理
    php面试全套
    php面试的那些“黑话”
    快速在命令窗口打开当前路径
    @Autowired注解的使用方法
    jsp页面获取表单的值
    jsp打印九九乘法表
    Google hack
    java中的集合collection
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13271085.html
Copyright © 2011-2022 走看看