题目描述
给定两个字符串,寻找这两个字串之间的最长公共子序列。
输入
输入两行,分别包含一个字符串,仅含有小写字母。
输出
最长公共子序列的长度。
样例输入
abcdgh
aedfhb
样例输出
3
def f(a,b):
srca = [0]
srcb = [0]
for i in a:
srca.append(i)
for i in b:
srcb.append(i)
n = len(srca)
m = len(srcb)
dp=[[0]*m for _ in range(n)]
for i in range(1,n):
for j in range(1,m):
if srca[i] == srcb[j]:
dp[i][j]=dp[i-1][j-1]+1
else:
dp[i][j]=max(dp[i-1][j],dp[i][j-1])
return dp[n-1][m-1]
if __name__ == '__main__':
src1 = input()
src2 = input()
print(f(src1,src2))