Pku acm 1159 Palindrome 动态规划题目解题报告(七)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1159

给一个字符串,求这个字符串最少增加几个字符能变成回文,如Ab3bd可以增加2个字符变为回文:Adb3bdA。通过这样的结论可以和最长公共子串联系起来(未证明)SS' (:S'S的反串)的最长公共子串其实一定是回文的。这样我们就可以借助lcs来解决该题,即s的长度减去lcs的值即可。核心的Java代码为

total-LCS(string,new StringBuffer(string).reverse().toString());

//函数LCS返回两个stringlcs的长度

带有详细注释的代码可以在http://download.csdn.net/user/china8848/获得

 

 

你可能感兴趣的:(Pku acm 1159 Palindrome 动态规划题目解题报告(七))