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; }