gym-10135I

题意:和H差不多,这个是找字符串中最长的镜像字串;

思路:一样的思路,标记下;

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
int main()
{
    char s[1005];
    char s1[]="WTYUIOAHXVM";
    int flag[1005];
    int ans;
    int t;
    int len;
    int len1;
    int sum,sum1;
    int maxx;
    int left,right;
    cin>>t;
    while(t--)
    {
        cin>>s;
        len=strlen(s);
        len1=strlen(s1);
        memset(flag,0,sizeof(flag));
        for(int i=0;i<len;i++)
        {
            for(int j=0;j<len1;j++)
                if(s[i]==s1[j])
            {
                flag[i]=1;break;
            }
        }
        ans=0;
        for(int i=0;i<=len-1;i++)
        {
            if(flag[i])
            {
                left=i-1;right=i+1;sum=1;
                while(left>=0&&right<len)
                {
                    if(s[left]==s[right]&&flag[left]&&flag[right])
                    {
                        sum+=2;
                        left--;
                    right++;
                    }
                    else
                        break;
                }
                left=i;right=i+1;sum1=0;
                while(left>=0&&right<len)
                {
                    if(s[left]==s[right]&&flag[left]&&flag[right])
                    {
                        sum1+=2;
                        left--;
                    right++;
                    }
                    else
                        break;

                }

                maxx=max(sum,sum1);
                ans=max(ans,maxx);
            }
            else
                continue;
        }
        cout<<ans<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/huangdao/p/8082541.html