class Solution { public: int longestCommonSubsequence(string text1, string text2) { int l1 = (int) text1.length(); int l2 = (int) text2.length(); int f[l1+1][l2+1]; for (int i=0; i<=l1; i++){ f[i][0] = 0; } for (int j=0; j<=l2; j++){ f[0][j] = 0; } for (int i=1; i<=l1; i++) { for (int j = 1; j<=l2; j++) { if (text1[i-1]==text2[j-1]) { f[i][j] = 1 + f[i-1][j-1]; } else { f[i][j] = max(f[i-1][j],f[i][j-1]); } } } return f[l1][l2]; } };