#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define MAX 1005
char inp[MAX],revinp[MAX];
int c[MAX][MAX];
using namespace std;
int pal(char *inp)
{
int M=strlen(inp);
strcpy(revinp,inp);
reverse(revinp,revinp+M);
int i,j;
for(int i=1;i<=M;i++)c[i][0]=0;
for(int j=0;j<=M;j++)c[0][j]=0;
for(i=1;i<=M;i++)
for(j=1;j<=M;j++)
{
if(inp[i-1]==revinp[j-1])c[i][j]=c[i-1][j-1]+1;
else if(c[i-1][j]>=c[i][j-1])c[i][j]=c[i-1][j];
else c[i][j]=c[i][j-1];
}
return c[M][M];
}
int main()
{
int tc;
bool signal=false;
cin>>tc;
tc+=1;
while(tc--){ int len;
//scanf("%s",&inp);
gets(inp);
if(signal==false){signal=true;continue;}
if(strcmp("\n",inp)==0)len=0;
else len=pal(inp);
cout<<len<<endl;
}
return 0;
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন