求添加几个字符能让字符串变成回文
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int a[1000100];
char b[1000100];
int dp[1010][1010];
int main()
{
int t;
cin >> t;
while(t --)
{
string s;
cin >> s;
string t = s;
reverse(t.begin(), t.end());
int n = s.length();
for(int i = n; i >= 1; i --)
{
s[i] = s[i - 1];
t[i] = t[i - 1];
}
for(int i = 1; i <= n; i ++)
{
for(int j = 1; j <= n; j++)
{
if(s[i] == t[j])
{
dp[i][j] = dp[i - 1][j - 1] + 1;
}
else
{
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
printf("%d\n", n - dp[n][n]);
}
return 0;
}