码迷,mamicode.com
首页 > 其他好文 > 详细

最长公共子序列

时间:2019-08-11 11:12:36      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:abc   range   info   enc   seq   main   ret   print   find   

给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB

则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA

 

 技术图片

代码:

def findLCS(A, n, B, m):
        # write code here
        record = 0
        maxNum = 0
        result = []
        
        for i in range(n):
            for j in range(m):
                if A[i] == B[j]:
                    if A[i] not in result:
                        record += 1
#                         print(A[i])
                        result.append(A[i])
                    if maxNum < record:
                        maxNum = record
        return maxNum,"".join(result)

if __name__ == "__main__":
    A = "BDCABA"
    n = 6
    B = "ABCBDAB"
    m =7
    print(findLCS(A, n, B, m))

 

最长公共子序列

标签:abc   range   info   enc   seq   main   ret   print   find   

原文地址:https://www.cnblogs.com/ivyharding/p/11334023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!