#include <iostream> #include <cstdio> #include <algorithm> #include <utility> #pragma warning (disable: 4996) using namespace std; char s1[5003], s2[5003]; int dp[2][5003]; int main() { int len; while(scanf("%d%s", &len, &s1) != EOF) { for(int i = 0; i < len; ++i) s2[i] = s1[len-i-1]; s2[len] = '/0'; for(int i = 0; i <= len; ++i) dp[0][i] = i; int k = 0; for(int i = 1; i <= len; ++i) { dp[1-k][0] = i; for(int j = 1; j <= len; ++j) { if(s1[i-1] != s2[j-1]) dp[1-k][j] = min(dp[1-k][j-1], dp[k][j]) + 1; else dp[1-k][j] = dp[k][j-1]; } k = 1-k; } printf("%d/n", dp[k][len]/2); } return 0; } //居然多组数据,受不了了,调了半小时.... //以后不管有没有提示,一定要写上while(scanf())!