def longestCommonSubsequence(text1, text2):
m, n = len(text1), len(text2)
# 初始化二维数组 dp,dp[i][j] 表示 text1 的前 i 个字符与 text2 的前 j 个字符之间的最长公共子序列的长度
dp = [[0] * (n+1) for _ in range(m+1)]
# 填充 dp 数组
for i in range(1, m+1):
for j in range(1, n+1):
if text1[i-1] == text2[j-1]:
# 如果当前字符相等,最长公共子序列长度加一
dp[i][j] = dp[i-1][j-1] + 1
else:
# 如果当前字符不相等,取前一个字符的最长公共子序列长度的较大值
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
# 返回最终结果
return dp[m][n]