最大公共子串问题的Python解法
来源:互联网 发布:mysql数据库教学视频 编辑:程序博客网 时间:2024/05/02 04:59
求两个字符串的最大公共子字符串问题是个经典的问题了,下面给出Python的解法。
def find_lcsubstr(s1, s2): m = [[0 for i in range(len(s2) + 1)] for j in range(len(s1) + 1)] #print("m",m)# 生成0矩阵,为方便后续计算,比字符串长度多了一列 mmax = 0 # 最长匹配的长度 p = 0 # 最长匹配对应在s1中的最后一位 for i in range(len(s1)): for j in range(len(s2)): if s1[i] == s2[j]: m[i + 1][j + 1] = m[i][j] + 1 if m[i + 1][j + 1] > mmax: mmax = m[i + 1][j + 1] p = i + 1 return s1[p - mmax:p], mmax # 返回最长子串及其长度print(find_lcsubstr('abcdfg', 'abdfg'))
输出结果:
('dfg', 3)
阅读全文
0 0
- 最大公共子串问题的Python解法
- 最长公共子串问题的后缀数组解法
- 最长公共子串问题的后缀数组解法
- 最长公共子串问题的后缀数组解法
- 最长公共子串问题的后缀数组解法
- 最长公共子串问题的后缀数组解法
- 最长公共子串问题的后缀数组解法
- 史上最全最丰富的“最长公共子序列”、“最长公共子串”问题的解法与思路
- 最大公共子串问题
- 最大公共子串问题
- N个字符串的最大公共子串 (暴力解法)
- 最长公共子序列LCS 与最长公共子串 两个问题的动态规化 解法
- 最长公共子序列(LCS问题)的DP解法
- 最大公共子串
- 最大公共子串
- 最大公共子串
- 最大公共子串
- 最大公共子串
- 全排列 递归方法与非递归方法实现
- POJ_1458_Common Subsequence
- 过桥问题的通解
- 描述内存分配方式以及它们的区别?
- ubuntu14.04版本MeshLab软件的安装与使用方法
- 最大公共子串问题的Python解法
- TCP的三次握手和四次挥手
- 实验楼_TCP/IP网络协议基础_Note05_S6
- CSS中可以和不可以继承的属性
- 51Nod 1135 求一个奇质数的最小原根
- 认认真真写博客,踏踏实实编代码
- 深入理解Apache Flink核心技术
- HDU-1557 权利指数(dfs)
- 报数