input: Write a function to find the longest common subsequence between two strings. The function should return the length of the longest common subsequence. If either or both strings are 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("", "ABDCF") == 0
  assert lcs("ABACEDF", "") == 0
  assert lcs("abcdef", "abcde") == 5
  assert lcs("", "") == 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]