UValive 6439 - Pasti Pas!

来源:互联网 发布:linux运行java文件 编辑:程序博客网 时间:2024/06/03 13:26

这道题的题意是,给你一个字符串,你可以把它的一个子串替换成一个字符,使它成为一个回文串,问你替换可使它成为回文串的最大长度是多少。

这道题比赛时没看,赛后也没想出来要怎么搞,怎么想都好像会tle,看了Baoge的码后豁然开朗。

就是只要一碰到相同子串就替换就好啦= =

#include<iostream>#include<algorithm>#include<cstdio>#include<algorithm>#include<string>#include<cstring>#define maxn 50010using namespace std;string str1,str2,str3;int main(){    int n,ans;    cin>>n;    for(int i=1; i<=n; i++)    {        ans=0;        str2="";        str3="";        cin>>str1;        int len=str1.length();        for(int j=0; j<(len>>1); j++)        {            str2=str2+str1[j];            str3=str1[len-j-1]+str3;            //cout<<str2<<endl;            //cout<<str3<<endl;            if(str2==str3)            {                ans+=2;                str2=str3="";            }        }        if(str2!=""&&len%2==0) ans++;        if(len%2) ans++;        printf("Case #%d: %d\n",i,ans);    }    return 0;}


0 0
原创粉丝点击