最长公共子序列

帅比萌擦擦* 提交于 2019-11-26 22:31:19

给定两个字符串,求解这两个字符串的最长公共子序列(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))

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!