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<bits/stdc++.h>
    using namespace std;
    int main()
    {
        char a[10005];
        gets(a);
        int l=strlen(a);
        int x1,x2,t=0;
        for(int k=0;k<l;k++)
        {
            int i=k-1;
            int j=k+1;
            x1=1;
            while(i>=0&&j<l)
            {
                if(a[i]==a[j])
                {
                    i--;
                    j++;
                    x1=x1+2;
                }
                else
                {
                    break;
                }
            }
            t=max(t,x1);
            i=k;
            j=k+1;
            x2=0;
            while(i>=0&&j<l)
            {
                if(a[i]==a[j])
                {
                    i--;
                    j++;
                    x2=x2+2;
                }
                else
                {
                    break;
                }
            }
            t=max(t,x2);
        }
        printf("%d
    ",t);
        return 0;
    }

    技术在于分享

  • 相关阅读:
    php解决与处理网站高并发 大流量访问的方法
    mysql事务和锁InnoDB
    从一个死锁看mysql innodb的锁机制
    Git如何删除自己创建的项目
    公众号的坑
    字符串转Unicode码
    字符串转UTF-8码(%开头)
    git介绍和使用
    ng2中文文档地址
    两个数组的排序方法
  • 原文地址:https://www.cnblogs.com/yinbiao/p/8677389.html
Copyright © 2011-2022 走看看