解题思路:
注意事项:
参考代码:
def longestCommonSubsequence(text1, text2):
# 创建一个二维数组 dp,用于存储最长公共子序列的长度
dp = [[0] * (len(text2) + 1) for _ in range(len(text1) + 1)]
# 遍历 text1 和 text2,填充 dp 数组
for i in range(1, len(text1) + 1):
for j in range(1, len(text2) + 1):
if text1[i - 1] == text2[j - 1]:
# 如果 text1[i-1] 和 text2[j-1] 相等,则当前位置的最长公共子序列长度为左上角位置的值加一
dp[i][j] = dp[i - 1][j - 1] + 1
else:
# 如果 text1[i-1] 和 text2[j-1] 不相等,则当前位置的最长公共子序列长度为上方或左方的较大值
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
# 返回最长公共子序列的长度
return dp[len(text1)][len(text2)]
text1, text2 = input().split()
print(longestCommonSubsequence(text1, text2))
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:645 |
大家好,我是验题君浏览:604 |
1050题解(结构体数组与结构体指针的使用)浏览:1216 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:609 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:592 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:581 |
哥德巴赫曾猜测 (C语言代码)浏览:778 |
简单的a+b (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题5.5 (Java代码)浏览:563 |
C语言程序设计教程(第三版)课后习题10.7 (C++代码)浏览:666 |