http://acm.pku.edu.cn/JudgeOnline/problem?id=1159
这个题有两种基本解法,第1种方法:
设a[i][j]表示从第i个字符到第j个字符需要增加多少字母使得回文,初始化后,状态转移方程:
if(s[i]==s[j])
a[i][j]=a[i+1][j-1];
else
a[i][j]=min(a[i+1][j],a[i][j-1])+1;
注意内存限制。用short型刚刚好。
第2种解法:
此题可转换成求最长回文子串
即S与^S的最长公共子序列,则answer=n-LCS(S,^S).