zoukankan      html  css  js  c++  java
  • pat 1040. Longest Symmetric String (25)

    1040. Longest Symmetric String (25)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    16000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    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
    解:两重循环,第一重从第一个字符开始,第二重从最后一个开始,本来想优化下的,发现那就是我一直第6个测试样例不过的原因,当时改过来提交显示全部正确的时候简直想骂人,好的吧,思路很简单,常规思路,详情看代码。

    代码:

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    int main()
    {
        string s;
        getline(cin,s);
        int len=s.length(),maxi=1;
        for(int i=0;i<len;i++)
        {
            for(int j=len-1;j>i;j--)
            {
                if(s[i]==s[j])
                {
                    int t1=i,t2=j;
                    do
                    {
                        t1++;
                        t2--;
                    } while(s[t1]==s[t2]&&t1<t2&&t1<j&&t2>i);
                    if((t1==t2||t1-t2==1)&&j-i+1>maxi)
                    {
                        maxi=j-i+1;
                    }
                    continue;
                }
            }
        }
        printf("%d
    ",maxi);
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【redis】主从复制
    【redis】订阅功能
    【redis】基础
    MySQL【十二】pymysql操作数据库
    MySQL【十一】创建索引
    MySQL【十】认识索引
    MySQL【九】树
    MySQL【八】多表查询
    ubuntu 制作ISO模块
    ubuntu 开机自启动
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965288.html
Copyright © 2011-2022 走看看