input: Write a function to calculate the edit distance between two strings using dynamic programming. If the given strings are empty then return 0.
  assert edit_distance("kitten", "sitting")==3
  assert edit_distance("flaw", "lawn")==2
  assert edit_distance("intention", "execution")==5
  assert edit_distance("", "")==0
  assert edit_distance("hello", "")==5
output: def edit_distance(str1, str2):
      m, n = len(str1), len(str2)
      dp = [[0] * (n + 1) for _ in range(m + 1)]
      
      for i in range(m + 1):
          for j in range(n + 1):
              if i == 0:
                  dp[i][j] = j
              elif j == 0:
                  dp[i][j] = i
              elif str1[i-1] == str2[j-1]:
                  dp[i][j] = dp[i-1][j-1]
              else:
                  dp[i][j] = 1 + min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])
      
      return dp[m][n]