static int lcs( char[] X, char[] Y, int m, int n )
if (X[m - 1] == Y[n - 1])
return 1 + lcs(X, Y, m - 1, n - 1);
return max(lcs(X, Y, m, n - 1), lcs(X, Y, m - 1, n));
static int max(int a, int b)
public static void Main()
char[] X=s1.ToCharArray();
char[] Y=s2.ToCharArray();
Console.Write("Length of LCS is" + " " +lcs( X, Y, m, n ) );