对称子字符串

来源:互联网 发布:张家界玻璃桥网络购票 编辑:程序博客网 时间:2024/06/04 20:03

这个对称子字符串的对称轴不在字符串中,例如QwQ不满足要求,而QWWQ满足

    /**     *input:roorle     *output:4     *input:111     *output:2     */    #include <bits/stdc++.h>    using namespace std;    char str[10];    int main()    {        scanf("%c",&str[0]);        int flag=-1,maxx=0,len=0,flag1=1,i;                 //flag记录对称轴,maxx最大值,len每个对称序列长度,flag1记录字符串是否都是相同的        for(i=1;((str[i]=getchar())!='\n' );i++)        {            if(flag1)            {                if(str[i]!=str[i-1])                    flag1=0;            }            if(flag==-1)            {                if(str[i]==str[i-1])                {                    flag=i;                    len++;                }            }            else            {                int dy=2*flag-i-1;              //flag-(i-flag)-1                if(dy>=0 && str[i]==str[dy])     //运用 && 运算短路性质,如果前面一旦越界下标<0,不会计算后面的,不会导致崩溃                    len++;                else                {                    flag =-1;                    maxx=max(maxx,len);                    len=0;                }            }        }        if(flag1)            return  0*printf("%d\n",i&1?(i-1):i);        cout<<max(maxx,len)*2<<endl;        return 0;    }
0 0
原创粉丝点击