dp。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int N;
string a, b;
int dp[2][5006];
int main()
{
cin >> N;
cin >> a;
b = a;
reverse(b.begin(), b.end());
for(int i = 1; i <= N; i ++)
for(int j = 1; j <= N; j ++)
if(a[i - 1] == b[j - 1])
dp[i % 2][j] = dp[(i - 1) % 2][j - 1] + 1;
else
dp[i % 2][j] = max(dp[(i - 1) % 2][j], dp[i % 2][j - 1]);
cout << N - dp[N % 2][N] << endl;
// system("pause");
return 0;
}