资源简介

西电软院算法上机2的原题以及python代码实现

资源截图

代码片段和文件信息

#!/usr/bin/env python
# coding=utf-8


def print_lcs(b X i j):
    if i == 0 or j == 0:
        return
    if b[i][j] == 1:
        print_lcs(b X i - 1 j - 1)
        print X[i - 1]
    elif b[i][j] == 2:
        print_lcs(b X i - 1 j)
    else:
        print_lcs(b X i j - 1)


def lcs_length(X Y):
    m = len(X)
    n = len(Y)
    b = [[0 for i in range(m + 1)] for j in range(n + 1)]
    c = [[0 for i in range(m + 1)] for j in range(n + 1)]
    for i in range(1 m + 1):
        for j in range(1 n + 1):
            if X[i - 1] == Y[j - 1]:
                c[i][j] = c[i - 1][j - 1] + 1
                b[i][j] = 1
            elif c[i - 1][j] >= c[i][j - 1]:
                c[i][j] = c[i - 1][j]
                b[i][j] = 2
            else:
                c[i][j] = c[i][j - 1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-05-10 00:08  homework2\
     文件        1161  2016-05-06 16:07  homework2\longest_common_subsequence.py
     文件         980  2016-05-06 16:08  homework2\longest_common_substring.py
     文件        1203  2016-05-06 15:55  homework2\matrix_chain.py
     文件         441  2016-05-09 22:25  homework2\max_sum.py
     文件       85504  2016-03-01 22:41  homework2\practice 2.doc
     文件        1252  2016-05-06 17:59  homework2\shortest_path.py

评论

共有 条评论