给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

给定一个字符串s,从中删除一些字符使得剩下的串是一个回文串。如何删除才能使得回文串最长呢

输出需要删除的字符个数。

先求字符串s的反转串rs然后求s和rs的最大公共子序列(子序列和子串的区别是子序列不要求連续,子串要求连续)则最大公共子序列的长度即为最大回文串的长度。(注意:字符串和其反转串的最大公共子序列一定是对称的即回文)
另一篇文章有相关代码:

给定一个字符串s你可以从中删除一些字符,使得剩下的串是一个回文串如何删除才能使得回文串最长呢?
输出需要删除的字符个数

对于每组数据,输出一个整数玳表最少需要删除的字符个数。

解题思路:先计算原字符串和翻转字符串之间的最长子序列,长度相减即得出答案

小Q最近遇到了一个难题:把一个芓符串的大写字母放到字符串的后面各个字符的相对位置不变,且不能申请额外的空间

我要回帖

 

随机推荐