返回序列长度
def findLCS(A, B):
m = len(A)
n = len(B)
dp = [[0] * (n + 1) for i in range(m + 1)]
for i in range(m):
for j in range(n):
if A[i] == B[j]:
dp[i + 1][j + 1] = dp[i][j] + 1
else:
dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j])
return dp[m][n]
返回序列长度,序列
def findLCS(A, B):
m = len(A)
n = len(B)
length = 0
str = ""
dp = [[0] * (n + 1) for i in range(m + 1)]
for i in range(1, m + 1):
for j in range(1, n + 1):
if A[i - 1] == B[j - 1]:
dp[i][j] = dp[i - 1][j - 1] + 1
if dp[i][j] > length:
length = dp[i][j]
str += (A[i - 1])
else:
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
return length, str