算法学习-最长公共子序列
来源:互联网 发布:ubuntu route设置 编辑:程序博客网 时间:2024/05/20 00:12
题目:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
输出需要删除的字符个数。
利用回文串的特点,正串和反串相同,求两者的最大公共子序列,原长度减去最大公共子序列长度即为需要删除的字符个数
最大公共子序列:
abcde 和acfef {ace}为最大公共子序列
利用动态规划思想:
Str1:m Str2:n
MaxLen[m,n]=0
i,j从0开始遍历到m,n
if str1[i]==str2[j],so MaxLen[i,j]=MaxLen[i-1,j-1]+1
if str1[i]!=str2[j],so Max[i,j]=Max(MaxLen[i-1,j],MaxLen[i,j-1])
则MaxLen[m,n]一定是最大公共子序列长度
阅读全文
0 0
- 算法学习-最长公共子序列
- 算法:最长公共子序列
- 最长公共子序列算法
- 【算法】最长公共子序列
- 最长公共子序列算法
- 算法--最长公共子序列
- <算法> 最长公共子序列
- 算法:最长公共子序列
- 最长公共子序列算法
- 算法学习笔记----最长公共子序列问题
- 算法学习-动态规划(最长公共子序列)
- 算法学习 - 最长公共子序列(LCS)C++实现
- 算法学习-最长公共子序列(LCS)
- 算法学习之动态规划--最长公共子序列
- 算法之最长递增子序列,最长公共子序列
- 算法之最长递增子序列,最长公共子序列
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
- LCS最长公共子序列算法
- JAVA | 1
- Eclipse配置python插件
- 160
- 笨办法学Python习题11 提问
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 算法学习-最长公共子序列
- java HashSet
- luence 优化
- inux ‘E297: 交换文件写入错误’解决方法
- Dockerfile参考(9) – LABEL添加元数据到镜像
- Linux修改默认shell
- Spring 5.0 注解配置bean 04
- JAVA多线程常见面试问题解析
- 网络编程_进程间通信_管道