- 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];
- }
- };