和“编辑距离”那题一样,需要多存储一位,右移一位

    1. int longestCommonSubsequence(string text1, string text2) {
    2. if(text1.empty() && text2.empty())return 0;
    3. int m = text1.size(), n = text2.size();
    4. vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));
    5. for(int i = 1;i <= m;++i){
    6. for(int j = 1;j <= n;++j){
    7. if(text1[i - 1] == text2[j - 1])dp[i][j] = dp[i - 1][j - 1] + 1;//记得-1
    8. else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
    9. }
    10. }
    11. return dp[m][n];
    12. }