1143. 最长公共子序列
解法一:dp
class Solution:
def longestCommonSubsequence(self, s1: str, s2: str) -> int:
m=len(s1)
n=len(s2)
dp = [[0] * (n+1) for _ in range(m+1)]
for i in range(1, m+1):
for j in range(1, n+1):
if s1[i-1] == s2[j-1]:
dp[i][j] = dp[i-1][j-1] +1
else:
#至少有一个字符不在LCS中
#都试一下,找LCS最长的
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
return dp[m][n]最后更新于