这题我们要将一个长度为 n n n 的字符串改成一个回文字符串,最坏情况下我们也只需要插入 n n n 个字符,但是很显然有些字符是不需要我们插入的,那么我们就可以考虑去重。 怎么去重呢? 我们可以吧这个字符串反过来,和原字符串形成一个对照,求一个最长公共子序列(也就是相同的部分),用字符串的长度减去最长公共子序列的长度(也就是不同的部分),即为问题所求。 证明:
Ab3bd
反过来为
db3bA
这样子我们就发现其实 b 3 b b3b b3b 是重复的,我们只要将 d d d 和 A A A复制