algorithm - 使用最少的插入将字符串转换为回文字符串

标签 algorithm dynamic-programming palindrome lcs

为了找到将给定字符串转换为回文串所需的最少插入次数,我找到了字符串 (lcs_string) 及其反向的最长公共(public)子序列。因此要进行的插入次数为 length(s) - length(lcs_string)

在知道插入次数的情况下,应该用什么方法来找到等价的回文串?

例如:

1) zbzczdzez

所需的插入次数:5 回文字符串:azbzcezdzeczbza

虽然同一个字符串可能存在多个回文串,但我只想找到一个回文串?

最佳答案

S[i, j] 表示字符串 S 的子串,从索引 i 开始到索引 结束j(包括)和c[i, j]S[i, j] 的最优解。

显然,c[i, j] = 0 if i >= j

一般来说,我们有重复:

enter image description here

关于algorithm - 使用最少的插入将字符串转换为回文字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729282/

相关文章:

algorithm - Bumptop - 与物理学有什么关系

c++ - 旋转二维多边形算法

c++ - 跳转到最后一个元素的最大方式数

typescript - 如何在 typescript 中动态调用实例方法?

java - 递归 isPalindrome 函数如何工作?

python - 回文发生器

c++ - 在位图上并发腐 eclipse 或膨胀

algorithm - 如何找到最长的回文子序列(不是它的长度)

c++ - 找出单词是否是回文的程序

python - 理解 Python 中的合并和排序算法