一、题目
二、思路
二维动态规划
dp[i][j]表示的text1的i-1和text2的j-1之间的公共子序列的长度
三、代码
class Solution {
public:
int longestCommonSubsequence(string text1, string text2) {
int len1=text1.length();
int len2=text2.length();
vector<vector<int>>dp(len1+1,vector<int>(len2+1,0));
int maxnum=0;
for(int i=1;i<=len1;++i){
for(int j=1;j<=len2;++j){
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]);
}
maxnum=max(maxnum,dp[i][j]);
}
}
return maxnum;
}
};