input: Write a function to find the longest common subsequence between two strings. The function should return the longest subsequence string. If the input strings are empty, the function should return an empty string.
  assert longest_common_subsequence("ABCDF", "ABECD")=="ABCD"
  assert longest_common_subsequence("AGGTAB", "GXTXAYB")=="GTAB"
  assert longest_common_subsequence("ABC", "DEF")==""
  assert longest_common_subsequence("", "")==""
  assert longest_common_subsequence("ABC", "")==""
output: def longest_common_subsequence(str1, str2):
      if not str1 or not str2:
          return ""
      m, n = len(str1), len(str2)
      dp = [[""] * (n + 1) for _ in range(m + 1)]
      for i in range(1, m + 1):
          for j in range(1, n + 1):
              if str1[i - 1] == str2[j - 1]:
                  dp[i][j] = dp[i - 1][j - 1] + str1[i - 1]
              else:
                  dp[i][j] = max(dp[i - 1][j], dp[i][j - 1], key=len)
      return dp[m][n]