public class Solution {
    public int LongestCommonSubsequence(string text1, string text2) {
    int[,] dp = new int[text1.Length + 1, text2.Length + 1];
            for (int i = 0; i < text1.Length + 1; i++)
            {
                for (int j = 0; j < text2.Length + 1; j++)
                {
                    dp[i, j] = 0;
                }
            }
            for (int i = text1.Length - 1; i >= 0; i--)
            {
                for (int j = text2.Length - 1; j >= 0; j--)
                {
                    if (text1[i] == text2[j])
                        dp[i, j] = 1 + dp[i + 1, j + 1];
                    else
                        dp[i, j] = Math.Max(dp[i, j + 1], dp[i + 1, j]);
                }
            }
            return dp[0, 0];
    }
}