alt

代码:

public:
    int longestCommonSubsequence(string text1, string text2) {
        int m = text1.size();
        int n = text2.size();
        vector<vector<int>> dp(m+1,vector<int>(n+1,0));
        text1 = " "+text1;
        text2 = " "+text2;
        for(int i = 1;i<=m;i++) {
            for(int j=1;j<=n;j++) {
                if(text1[i] == 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]);//如果当前两个字符的长度不相等则dp转移
                }
            }
        }
        return dp[m][n];
    }
};