http://acm.pku.edu.cn/JudgeOnline/problem?id=1159
给一个字符串,求这个字符串最少增加几个字符能变成回文,如Ab3bd可以增加2个字符变为回文:Adb3bdA。通过这样的结论可以和最长公共子串联系起来(未证明):S和S' (注:S'是S的反串)的最长公共子串其实一定是回文的。这样我们就可以借助lcs来解决该题,即用s的长度减去lcs的值即可。核心的Java代码为:
total-LCS(string,new StringBuffer(string).reverse().toString());
//函数LCS返回两个string的lcs的长度
带有详细注释的代码可以在http://download.csdn.net/user/china8848/获得