input: Write a function to find the longest common subsequence between two strings. The function should take two strings as input and return the length of their longest common subsequence. If either string is empty, the function should return 0.
  def lcs(X, Y): 
      m = len(X) 
      n = len(Y) 
      L = [[None]*(n+1) for i in range(m+1)] 
      for i in range(m+1): 
          for j in range(n+1): 
              if i == 0 or j == 0 : 
                  L[i][j] = 0
              elif X[i-1] == Y[j-1]: 
                  L[i][j] = L[i-1][j-1]+1
              else: 
                  L[i][j] = max(L[i-1][j] , L[i][j-1]) 
      return L[m][n] 
  
  assert lcs("ABACEDF", "ABDCF")==4
  assert lcs("ABC", "DEF")==0
  assert lcs("ABCBDAB", "BDCAB")==4
  assert lcs("", "ABDCF")==0
  assert lcs("ABACEDF", "")==0
output: def lcs(X, Y): 
      m = len(X) 
      n = len(Y) 
      L = [[None]*(n+1) for i in range(m+1)] 
      for i in range(m+1): 
          for j in range(n+1): 
              if i == 0 or j == 0 : 
                  L[i][j] = 0
              elif X[i-1] == Y[j-1]: 
                  L[i][j] = L[i-1][j-1]+1
              else: 
                  L[i][j] = max(L[i-1][j] , L[i][j-1]) 
      return L[m][n]