ACdream 1773 最长非回文串 (脑洞题)

来源:互联网 发布:mac传奇单机版 编辑:程序博客网 时间:2024/06/11 22:38

题目链接:
ACdream 1773

题解:
其实很简单,如果给的是回文字符串,那么就输出字符串长度减一;如果不是回文字符串,就输出字符串长度的。
注意:要考虑所有字符都一样的情况。

代码:

/** this code is made by LzyRapx* Problem: 1773* Verdict: Accepted* Submission Date: 2017-06-04 15:52:22* Time: 48MS* Memory: 2644KB*/#include <bits/stdc++.h>using namespace std;char s[1000005];int main(){    cin>>s;    int len;    int flag=0;    int f = 0;    len=strlen(s);    for(int i=0;i<len;i++)    {        if(s[0]!=s[i])        {            flag=1;            break;        }    }    if(flag==0)cout<<-1<<endl;    else    {        for(int i=0,j=len-1;i<len/2;i++,j--)        {            if(s[i]!=s[j])            {                f = 1;                break;            }        }        if(f==1)cout<<len<<endl;        else cout<<len-1<<endl;    }    return 0;}
原创粉丝点击