栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

动态规划之最长公共子串问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

动态规划之最长公共子串问题

Python列表推导式:


def LongestCommonSubstring(X, Y):
    lm = 0               ## 最长子串长度
    pm = 0               ## 最长子串末尾
    c = [[0 for i in range(len(Y)+1)]for i in range(len(X)+1)]    ## 初始化表格
    for i in range(1,len(X)+1):                     
        for j in range(1,len(Y)+1):
            if(X[i-1] != Y[j-1]):            ## 因为xy列表是从0开始存的,所以开始i=1时对应0的位置
                c[i][j] = 0                 
            else:
                c[i][j] = c[i-1][j-1]+1 
                if(c[i][j] > lm):
                    lm = c[i][j]
                    pm = i
    print("最长子串长度为:{0}n从X数组的第{1}位数开始。".format(lm,pm-lm+1))

调用:

X = ['A','B','C','A','D','B','B']
Y = ['B','C','E','D','B','B']
LongestCommonSubstring(X, Y)

结果:

python,我又来啦~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754075.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号