#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[1010][1010];
char s[1010],str[1010];
int LCS(int n){
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(s[i-1]==str[j-1]) dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
return dp[n][n];
}
int main(){
int n,i,j,k,t;
scanf("%d",&t);
while(t--){
memset(dp,0,sizeof(dp));
scanf("%s",s);
n=strlen(s);
for(j=0,i=n-1;i>=0;i--){
str[j++]=s[i];
}
str[j]='\0';
printf("%d\n",n-LCS(n));
}
return 0;
}
ny 37 回文字符串(LCS)
最新推荐文章于 2022-08-06 09:31:56 发布