问题描述:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。
例如:输入:google 输出:2
思路:回文串通常可以用逆序的方式寻找思路。例如字符串google逆序后elgoog,字符串alibaba逆序后ababila,可以发现求回文串的问题可以转换成求两个字符串的最大公共子序列的问题(序列可以不连续)。
需要删除的长度 = 字符串的长度 - 字符串与逆序字符串的最大公共子序列的长度
问题描述:求两个字符串的最大公共子序列(LCS)(序列可以不连续)
例如:alibaba和ababila的最大公共子序列为ababa